KeyFactory (cglib (Version 2.2.2))
Date: 2024-01-11

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.cglib.core
Class KeyFactory

    java.lang.Object
      net.sf.cglib.core.KeyFactory

    public abstract class KeyFactory

extends java.lang.Object

Generates classes to handle multi-valued keys, for use in things such as Maps and Sets. Code for `equals` and `hashCode` methods follow the the rules laid out in Effective Java by Joshua Bloch.

To generate a `KeyFactory`, you need to supply an interface which describes the structure of the key. The interface should have a single method named `newInstance`, which returns an `Object`. The arguments array can be anything--Objects, primitive values, or single or multi-dimension arrays of either. For example:

         private interface IntStringKey {
             public Object newInstance(int i, String s);
         }

Once you have made a `KeyFactory`, you generate a new key by calling the `newInstance` method defined by your interface.

         IntStringKey factory = (IntStringKey)KeyFactory.create(IntStringKey.class);
         Object key1 = factory.newInstance(4, "Hello");
         Object key2 = factory.newInstance(4, "World");

Note: `hashCode` equality between two keys `key1` and `key2` is only guaranteed if `key1.equals(key2)` and the keys were produced by the same factory.

Version:
  $Id: KeyFactory.java,v 1.26 2006/03/05 02:43:19 herbyderby Exp $

Nested Class Summary
`static class` | `KeyFactory.Generator`

Field Summary
`static Customizer` | `CLASS_BY_NAME`
`static Customizer` | `OBJECT_BY_CLASS`

Method Summary
`static KeyFactory` | `create(java.lang.Class keyInterface)`
`static KeyFactory` | `create(java.lang.Class keyInterface, Customizer customizer)`
`static KeyFactory` | `create(java.lang.ClassLoader loader, java.lang.Class keyInterface, Customizer customizer)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### CLASS_BY_NAME

    public static final Customizer CLASS_BY_NAME

### OBJECT_BY_CLASS

    public static final Customizer OBJECT_BY_CLASS

Method Detail

### create

    public static KeyFactory create(java.lang.Class keyInterface)

### create

    public static KeyFactory create(java.lang.Class keyInterface,
                                    Customizer customizer)

### create

    public static KeyFactory create(java.lang.ClassLoader loader,
                                    java.lang.Class keyInterface,
                                    Customizer customizer)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2001 - Apache Software Foundation