com.googlecode.ehcache.annotations.key
Class HashCodeCacheKeyGenerator

java.lang.Object
  extended by com.googlecode.ehcache.annotations.key.AbstractCacheKeyGenerator<T>
      extended by com.googlecode.ehcache.annotations.key.AbstractDeepCacheKeyGenerator<G,T>
          extended by com.googlecode.ehcache.annotations.key.AbstractHashingCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>
              extended by com.googlecode.ehcache.annotations.key.HashCodeCacheKeyGenerator
All Implemented Interfaces:
CacheKeyGenerator<java.lang.Long>, ReflectionHelperAware
Direct Known Subclasses:
ReflectionHashCodeCacheKeyGenerator

public class HashCodeCacheKeyGenerator
extends AbstractHashingCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

Version:
$Revision: 656 $
Author:
Eric Dalquist

Nested Class Summary
static class HashCodeCacheKeyGenerator.LongGenerator
          Little utility class to fake a mutable long
 
Field Summary
static java.lang.String DEFAULT_BEAN_NAME
          Name of the bean this generator is registered under using the default constructor.
protected static long INITIAL_HASH
           
protected static long MULTIPLIER
           
 
Constructor Summary
HashCodeCacheKeyGenerator()
           
HashCodeCacheKeyGenerator(boolean includeMethod, boolean includeParameterTypes)
           
 
Method Summary
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, boolean[] a)
          Append a boolean array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, byte[] a)
          Append a byte array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, char[] a)
          Append a char array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, double[] a)
          Append a double array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, float[] a)
          Append a float array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, int[] a)
          Append a int array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, long[] a)
          Append a long array.
protected  void append(HashCodeCacheKeyGenerator.LongGenerator generator, short[] a)
          Append a short array.
protected  void appendGraphCycle(HashCodeCacheKeyGenerator.LongGenerator generator, java.lang.Object o)
          Called if a graph cycle is detected.
protected  void appendHash(HashCodeCacheKeyGenerator.LongGenerator generator, java.lang.Object e)
           
protected  void appendNull(HashCodeCacheKeyGenerator.LongGenerator generator)
          Called if a null value is found in the object graph
 java.lang.Long generateKey(HashCodeCacheKeyGenerator.LongGenerator generator)
          Generate the cache key from the generator
 HashCodeCacheKeyGenerator.LongGenerator getGenerator(java.lang.Object... data)
          Create the object used to generate the key.
 
Methods inherited from class com.googlecode.ehcache.annotations.key.AbstractHashingCacheKeyGenerator
append, appendClass, appendEnum, shouldReflect
 
Methods inherited from class com.googlecode.ehcache.annotations.key.AbstractDeepCacheKeyGenerator
beginRecursion, deepHashCode, deepHashCode, deepHashCode, deepHashCode, endRecursion, generateKey, getReflectionHelper, isUseReflection, reflectionDeepHashCode, setReflectionHelper, setUseReflection, toString
 
Methods inherited from class com.googlecode.ehcache.annotations.key.AbstractCacheKeyGenerator
generateKey, isCheckforCycles, isIncludeMethod, isIncludeParameterTypes, register, setCheckforCycles, setIncludeMethod, setIncludeParameterTypes, unregister
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_BEAN_NAME

public static final java.lang.String DEFAULT_BEAN_NAME
Name of the bean this generator is registered under using the default constructor.

See Also:
Constant Field Values

INITIAL_HASH

protected static final long INITIAL_HASH
See Also:
Constant Field Values

MULTIPLIER

protected static final long MULTIPLIER
See Also:
Constant Field Values
Constructor Detail

HashCodeCacheKeyGenerator

public HashCodeCacheKeyGenerator()
See Also:
AbstractCacheKeyGenerator.AbstractCacheKeyGenerator()

HashCodeCacheKeyGenerator

public HashCodeCacheKeyGenerator(boolean includeMethod,
                                 boolean includeParameterTypes)
See Also:
AbstractCacheKeyGenerator.AbstractCacheKeyGenerator(boolean, boolean)
Method Detail

getGenerator

public HashCodeCacheKeyGenerator.LongGenerator getGenerator(java.lang.Object... data)
Description copied from class: AbstractDeepCacheKeyGenerator
Create the object used to generate the key. This object is passed into every AbstractDeepCacheKeyGenerator.deepHashCode(G, java.lang.Object[]) and AbstractDeepCacheKeyGenerator.append(G, java.lang.Object) call.

Specified by:
getGenerator in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

generateKey

public java.lang.Long generateKey(HashCodeCacheKeyGenerator.LongGenerator generator)
Description copied from class: AbstractDeepCacheKeyGenerator
Generate the cache key from the generator

Specified by:
generateKey in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      boolean[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a boolean array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle boolean or boolean array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      byte[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a byte array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle byte or byte array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      char[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a char array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle char or char array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      double[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a double array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle double or double array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      float[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a float array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle float or float array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      int[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a int array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle int or int array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      long[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a long array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle long or long array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

append

protected void append(HashCodeCacheKeyGenerator.LongGenerator generator,
                      short[] a)
Description copied from class: AbstractDeepCacheKeyGenerator
Append a short array. Calls AbstractDeepCacheKeyGenerator.append(Object, Object) on each value in the array. If the implementing class can handle short or short array primitives directly this should be overridden to avoid auto-boxing each array element.

Overrides:
append in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

appendGraphCycle

protected void appendGraphCycle(HashCodeCacheKeyGenerator.LongGenerator generator,
                                java.lang.Object o)
Description copied from class: AbstractDeepCacheKeyGenerator
Called if a graph cycle is detected.

Specified by:
appendGraphCycle in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>
o - The object that started the cycle

appendNull

protected void appendNull(HashCodeCacheKeyGenerator.LongGenerator generator)
Description copied from class: AbstractDeepCacheKeyGenerator
Called if a null value is found in the object graph

Specified by:
appendNull in class AbstractDeepCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>

appendHash

protected void appendHash(HashCodeCacheKeyGenerator.LongGenerator generator,
                          java.lang.Object e)
Specified by:
appendHash in class AbstractHashingCacheKeyGenerator<HashCodeCacheKeyGenerator.LongGenerator,java.lang.Long>


Copyright © 2011. All Rights Reserved.