SmartFrog 3.10.000

org.smartfrog.sfcore.common
Class OrderedHashtable

java.lang.Object
  extended by java.util.Dictionary
      extended by java.util.Hashtable
          extended by org.smartfrog.sfcore.common.OrderedHashtable
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map, Copying, MessageKeys
Direct Known Subclasses:
ContextImpl

public class OrderedHashtable
extends java.util.Hashtable
implements Copying, MessageKeys, java.io.Serializable

Implements a hashtable which maintains the order in which the elements were added to the hashtable. This is important for deployment and resolution of components since lexical ordering needs to be maintained for overwrites.

See Also:
Serialized Form

Field Summary
static int initCap
          Initial capacity for hashtables.
static int keysInc
          Increment size for keys in orderer hashtable.
static float loadFac
          Load percentage for hashtable growth.
 java.util.Vector orderedKeys
          Vector for ordered keys.
 
Fields inherited from interface org.smartfrog.sfcore.common.MessageKeys
CANNOT_LINK_TO_PREDICATE, COMPONENT_TERMINATED, COPY_FAILED, COPY_SERIALIZE_FAILED, ERROR_NO_SECURITY_BUT_REQUIRED, ILLEGAL_BOOLEAN_PARAMETER, ILLEGAL_NUMERIC_PARAMETER, ILLEGAL_STRING_PARAMETER, ILLEGAL_VECTOR_PARAMETER, LIVENESS_SEND_FAILURE, LIVENESS_SEND_FAILURE_IN, MISSING_PARAMETER, MSG_CLASS_NOT_FOUND, MSG_CONNECT_ERR, MSG_CONT_OTHER_DEPLOY, MSG_DEPLOY_COMP_TERMINATED, MSG_DEPLOY_SUCCESS, MSG_DEPLOYWITH_PHASE_FAILED, MSG_DETACH_SUCCESS, MSG_DETACH_TERMINATE_SUCCESS, MSG_ERR_DEPLOY_FROM_URL, MSG_ERR_PARSE, MSG_ERR_RESOLVE_PHASE, MSG_ERR_SF_RUNNING, MSG_ERR_TERM, MSG_FAILED_INET_ADDRESS_LOOKUP, MSG_FAILED_TO_CONTACT_PARENT, MSG_FILE_NOT_FOUND, MSG_HOOK_ACTION_FAILED, MSG_ILLEGAL_ACCESS, MSG_ILLEGAL_CLASS_TYPE, MSG_ILLEGAL_CLASS_TYPE_EXPECTING_GOT, MSG_ILLEGAL_REFERENCE, MSG_INPUTSTREAM_NULL, MSG_INSTANTIATION_ERROR, MSG_INVALID_OBJECT_TYPE, MSG_INVOCATION_TARGET, MSG_LANG_NOT_FOUND, MSG_LIVENESS_START_FAILED, MSG_LOADING_URL, MSG_METHOD_NOT_FOUND, MSG_NON_REP_ATTRIB, MSG_NOT_COMPONENT_REFERENCE, MSG_NOT_FOUND_ATTRIBUTE, MSG_NOT_FOUND_REFERENCE, MSG_NOT_VALUE_REFERENCE, MSG_NULL_DEF_METHOD, MSG_NULL_URL, MSG_OBJECT_REGISTRATION_FAILED, MSG_PARENT_LOCATION_FAILED, MSG_PING_SUCCESS, MSG_RANDM_ERR, MSG_REMOTE_CONNECT_ERR, MSG_REPEATED_ATTRIBUTE, MSG_SF_DEAD, MSG_SF_READY, MSG_SF_TERMINATED, MSG_STACKTRACE_FOLLOWS, MSG_START_COMP_TERMINATED, MSG_TERMINATE_SUCCESS, MSG_UNHANDLED_EXCEPTION, MSG_UNKNOWN_HOST, MSG_UNRESOLVED_REFERENCE, MSG_UNRESOLVED_REFERENCE_IN, MSG_UPDATE_SUCCESS, MSG_URL_NOT_FOUND, MSG_URL_TO_PARSE_NOT_FOUND, MSG_WARNING_LIVENESS_ENABLED, MSG_WARNING_STACKTRACE_DISABLED, MSG_WARNING_STACKTRACE_ENABLED, ROOT_MUST_BE_COMPONENT, WARN_NO_SECURITY
 
Constructor Summary
OrderedHashtable()
          Constructs an ordered hashtable with default capacity (10) and load factor (0.95).
OrderedHashtable(int cap, float fac)
          Constructs an ordered hashtable with given capacity and load factor.
 
Method Summary
 void clear()
          Clears the keys as well as the hashtable.
 java.lang.Object clone()
          Does a shallow copy of the hashtable and the ordered keys.
 java.lang.Object copy()
          Does a deep copy of the hashtable.
 java.util.Enumeration elements()
          Returns the values of the hashtable in order.
 java.util.Enumeration keys()
          Returns an ordered enumeration over the keys of this hashtable.
 java.util.Iterator orderedAttributes()
          Returns the attributes of the hashtable in order.
 java.util.Iterator orderedValues()
          Returns the values of the hashtable in order.
protected  java.lang.Object primPut(java.lang.Object key, java.lang.Object value)
          Internal method to call the basic put method on hashtables.
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          Add an object to the hashtable.
 java.lang.Object remove(int index)
          Removes the element at the specified position.
 java.lang.Object remove(java.lang.Object key)
          Removes an entry from the hashtable.
 java.lang.Object rename(java.lang.Object key1, java.lang.Object key2)
          Renames an entry in the otable, leaving its position in the table unchanged.
 
Methods inherited from class java.util.Hashtable
contains, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, putAll, rehash, size, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

initCap

public static int initCap
Initial capacity for hashtables. Looks up Common.OrderedHashtable.initCap (offset by SFSystem.propBase). Defaults to 10 if not there.


loadFac

public static float loadFac
Load percentage for hashtable growth. Looks up Common.OrderedHashtable.loadFac (offset by SFSystem.propBase). Defaults to 95(%) if not there.


keysInc

public static int keysInc
Increment size for keys in orderer hashtable. Common.OrderedHashtable.keysInc (offset by SFSystem.propBase). Defaults to 5 if not there.


orderedKeys

public java.util.Vector orderedKeys
Vector for ordered keys.

Constructor Detail

OrderedHashtable

public OrderedHashtable()
Constructs an ordered hashtable with default capacity (10) and load factor (0.95).


OrderedHashtable

public OrderedHashtable(int cap,
                        float fac)
Constructs an ordered hashtable with given capacity and load factor. Also makes sure the orderedKeys vector has at least that capacity.

Parameters:
cap - initial capacity
fac - load factor
Method Detail

clear

public void clear()
Clears the keys as well as the hashtable. Overwrites Hashtable.clear().

Specified by:
clear in interface java.util.Map
Overrides:
clear in class java.util.Hashtable

copy

public java.lang.Object copy()
Does a deep copy of the hashtable. Values in the hashtable which understand the Copying interface get copied properly. If the Values cannot be copied, the basic SF values (numbers, strings, booleans, are each properly dealt with. Other values are copied using serialize/deserialize if they implement serialization - note that because of this transient data will not be copied.

Specified by:
copy in interface Copying
Returns:
copy of hashtable

primPut

protected java.lang.Object primPut(java.lang.Object key,
                                   java.lang.Object value)
Internal method to call the basic put method on hashtables. This will NOT add the key into the ordered table. Used mainly by copy(). Overwrites Hashtable.put().

Parameters:
key - key of attribute to put
value - value to put
Returns:
previous value or null if none

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Add an object to the hashtable.

Specified by:
put in interface java.util.Map
Overrides:
put in class java.util.Hashtable
Parameters:
key - key for association
value - value for hashtable
Returns:
previous value for key or null if none

remove

public java.lang.Object remove(java.lang.Object key)
Removes an entry from the hashtable. Overwrites Hashtable.remove().

Specified by:
remove in interface java.util.Map
Overrides:
remove in class java.util.Hashtable
Parameters:
key - key to remove
Returns:
removed object

remove

public java.lang.Object remove(int index)
Removes the element at the specified position. Removes the key (and its corresponding value) from this hashtable. This method does nothing if the key is not in the hashtable.

Parameters:
index - index to remove
Returns:
the value to which the index had been mapped in this hashtable, or null if the key did not have a mapping

rename

public java.lang.Object rename(java.lang.Object key1,
                               java.lang.Object key2)
Renames an entry in the otable, leaving its position in the table unchanged.

Parameters:
key1 - the initial key to be renamed
key2 - the new key name
Returns:
the initial key, or null if it wasn't in the table

keys

public java.util.Enumeration keys()
Returns an ordered enumeration over the keys of this hashtable.

Overrides:
keys in class java.util.Hashtable
Returns:
enumeration over keys

elements

public java.util.Enumeration elements()
Returns the values of the hashtable in order.

Overrides:
elements in class java.util.Hashtable
Returns:
ordered enumeration over values

orderedAttributes

public java.util.Iterator orderedAttributes()
Returns the attributes of the hashtable in order. The remove operation of this Iterator won't affect the contents of OrderedHashTable.

Returns:
ordered iterator over attributes

orderedValues

public java.util.Iterator orderedValues()
Returns the values of the hashtable in order. The remove operation of this Iterator won't affect the contents of OrderedHashTable.

Returns:
ordered iterator over values

clone

public java.lang.Object clone()
Does a shallow copy of the hashtable and the ordered keys.

Specified by:
clone in interface Copying
Overrides:
clone in class java.util.Hashtable
Returns:
shallow copy of this table

SmartFrog CORE 3.10.000

(C) Copyright 1998-2006 Hewlett-Packard Development Company, LP