public class NTEntryStore
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
NTEntryStore.TableListenerManager
An object that handles firing Table Listeners
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.Character,NTTableEntry> |
m_idEntries |
private NTEntryStore.TableListenerManager |
m_listenerManager |
private java.util.Hashtable<java.lang.String,NTTableEntry> |
m_namedEntries |
private char |
m_nextId |
private NTWriteManager |
m_receiverIn |
private NTWriteManager |
m_receiverOut |
| Constructor and Description |
|---|
NTEntryStore(NTEntryStore.TableListenerManager listenerManager) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addEntry(NTTableEntry newEntry) |
void |
clearEntries()
Remove all entries
NOTE: This method should not be used with applications which cache entries which would lead to unknown results
This method is for use in testing only
|
void |
clearIds()
clear the id's of all entries
|
NTTableEntry |
getEntry(char entryId)
Get an entry based on it's id
|
NTTableEntry |
getEntry(java.lang.String name)
Get an entry based on it's name
|
java.util.Set<java.lang.String> |
keys()
Get an entry based on it's name
|
void |
notifyEntries(ITable table,
ITableListener listener)
Called to say that a listener should notify the listener manager of all of the entries
|
void |
offerIncomingAssignment(NTTableEntry entry) |
void |
offerIncomingUpdate(NTTableEntry entry,
char sequenceNumber,
java.lang.Object value) |
void |
putOutgoing(NTTableEntry tableEntry,
java.lang.Object value) |
void |
putOutgoing(java.lang.String name,
NTEntryType type,
java.lang.Object value)
Stores the given value under the given name and queues it for
transmission to the server.
|
void |
sendServerHello(NTConnection connection)
Send all entries in the entry store as entry assignments in a single transaction
|
void |
setInOutReceiver(NTWriteManager receiver) |
boolean |
updateEntry(NTTableEntry entry,
char sequenceNumber,
java.lang.Object value) |
private static boolean |
valuesEqual(java.lang.Object o1,
java.lang.Object o2)
Check if two objects are equal doing a deep equals of arrays
This method assumes that o1 and o2 are of the same type (if one is an object array the other one is also)
|
private final java.util.Map<java.lang.Character,NTTableEntry> m_idEntries
private final java.util.Hashtable<java.lang.String,NTTableEntry> m_namedEntries
private final NTEntryStore.TableListenerManager m_listenerManager
private NTWriteManager m_receiverOut
private NTWriteManager m_receiverIn
private char m_nextId
public NTEntryStore(NTEntryStore.TableListenerManager listenerManager)
public NTTableEntry getEntry(char entryId)
entryId - the id f the entry to look forpublic NTTableEntry getEntry(java.lang.String name)
name - the name of the entry to look forpublic java.util.Set<java.lang.String> keys()
m_name - the name of the entry to look forpublic void clearEntries()
public void clearIds()
public void setInOutReceiver(NTWriteManager receiver)
public boolean addEntry(NTTableEntry newEntry)
public boolean updateEntry(NTTableEntry entry, char sequenceNumber, java.lang.Object value)
private static boolean valuesEqual(java.lang.Object o1,
java.lang.Object o2)
o1 - o2 - public void putOutgoing(java.lang.String name,
NTEntryType type,
java.lang.Object value)
throws WrongEntryTypeException
name - The name under which to store the given value.type - The type of the given value.value - The value to store.WrongEntryTypeException - Thrown if an
entry already exists with the given name and is of a different type.public void putOutgoing(NTTableEntry tableEntry, java.lang.Object value)
public void offerIncomingAssignment(NTTableEntry entry)
public void offerIncomingUpdate(NTTableEntry entry, char sequenceNumber, java.lang.Object value)
public void sendServerHello(NTConnection connection) throws java.io.IOException
connection - java.io.IOExceptionpublic void notifyEntries(ITable table, ITableListener listener)
listener - table -