in src/main/java/org/apache/commons/ognl/internal/ClassCacheImpl.java [99:148]
public final V put( Class<?> key, V value )
{
if ( classInspector != null && !classInspector.shouldCache( key ) )
{
return value;
}
V result = null;
int i = key.hashCode() & TABLE_SIZE_MASK;
Entry<Class<?>, V> entry = table[i];
if ( entry == null )
{
table[i] = new Entry<Class<?>, V>( key, value );
size++;
}
else
{
if ( key == entry.getKey() )
{
result = entry.getValue();
entry.setValue( value );
}
else
{
while ( true )
{
if ( key == entry.getKey() )
{
/* replace value */
result = entry.getValue();
entry.setValue( value );
break;
}
if ( entry.getNext() == null )
{
/* add value */
entry.setNext( new Entry<Class<?>, V>( key, value ) );
break;
}
entry = entry.getNext();
}
}
}
return result;
}