public abstract class HashStructureNode extends DataContainer implements PropertyStorage
LOG_READONLY
DATA_KEY
Modifier and Type | Method and Description |
---|---|
void |
applyBatchChanges(java.lang.Runnable runnable) |
protected void |
closeImpl()
Subclasses should override this method to customize the close()
behavior.
|
abstract java.lang.Object |
copyTo(java.lang.Object target) |
protected void |
copyToImpl(HashStructureNode copy) |
boolean |
equals(java.lang.Object o) |
protected boolean |
equalsImpl(HashStructureNode other) |
protected java.lang.String |
getNamespaceURI() |
protected java.lang.Object |
getObjectStoreTarget() |
HashStructure |
getProperties()
Returns a cascading HashStructure that represents this project's
persistent properties.
|
HashStructure |
getPropertiesForOverriding() |
protected java.lang.String |
getRootQName() |
HashStructure |
getUserPropertiesOnly()
Returns a HashStructure that contains only the user-private
properties (no shared properties).
|
boolean |
isDefault()
For HashStructureNode subtypes that keep default state in a separate Node
instance, this method should return
true if this Node is
the default instance. |
protected boolean |
isUserPropertiesEnabled() |
protected HashStructureIO |
newHashStructureIO() |
protected ObjectStore |
newObjectStore() |
protected void |
openImpl()
Subclasses should override this method to customize the open()
behavior.
|
protected void |
saveImpl()
Subclasses should override this method to customize the save()
behavior.
|
void |
saveUserProperties() |
void |
setURL(java.net.URL url)
Sets the
URL associated with this Node and
recaches the Node in the NodeFactory with
the new URL so that subsequent queries for the
Node will return successfully. |
add, add, add, canAdd, canRemove, containsChild, equalsImpl, getBaseDirectory, getChildren, getListOfChildren, getProperty, getProperty, getSharedPropertiesOnly, getURL, mayHaveChildren, remove, remove, removeAll, removeAll, resetSubDirtyableOwners, revertImpl, setListOfChildren, setProperty, setSubDirtyableOwner, size, update
addNodeListener, addNodeListenerForType, addNodeListenerForTypeHierarchy, attach, beginThreadNodeUsageCycle, callUnderReadLock, callUnderWriteLock, close, createSubject, delete, deleteImpl, detach, endThreadNodeUsage, endThreadNodeUsageCycle, ensureOpen, equalsImpl, getAttributes, getData, getIcon, getInputStream, getLongLabel, getShortLabel, getSubject, getTimestamp, getTimestampLoadedUnsafe, getToolTipText, getTransientProperties, getUnmodifiedTimestamp, isDirty, isLoaded, isLockHeld, isMigrating, isNew, isOpen, isReadLocked, isReadLockHeld, isReadOnly, isReadOrWriteLocked, isTrackedInNodeCache, isTrackingThreadNodeUsage, isWriteLocked, isWriteLockHeld, lockCount, markDirty, markDirtyImpl, nodeLock, notifyObservers, open, readLock, readLockCount, readLockInterruptibly, readUnlock, refreshTimestamp, removeNodeListener, removeNodeListenerForType, removeNodeListenerForTypeHierarchy, rename, renameImpl, reportOpenException, revert, runUnderReadLock, runUnderWriteLock, save, setEventLog, setMigrating, setOpen, setReadOnly, setTimestampDirectly, toString, tryRunUnderReadLock, tryRunUnderWriteLock, unsetMigrating, upgradeLock, upgradeUnlock, urlReadOnlyChanged, writeLock, writeLockCount, writeLockInterruptibly, writeUnlock
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAttributes, getData
getIcon, getLongLabel, getShortLabel, getToolTipText, toString
public final void setURL(java.net.URL url)
Node
URL
associated with this Node
and
recaches the Node
in the NodeFactory
with
the new URL
so that subsequent queries for the
Node
will return successfully.setURL
in interface Locatable
setURL
in class Node
url
- The URL
to set.Locatable.setURL(URL)
public abstract java.lang.Object copyTo(java.lang.Object target)
protected final void copyToImpl(HashStructureNode copy)
public final HashStructure getProperties()
Property lookups on the cascading HashStructure will start in the user-private structure and, if the property value is not assigned there, fallback on the shared structure.
Property changes on the cascading HashStructure are only applied to
the user-private structure. To make changes to the shared
structure, use DataContainer.getSharedPropertiesOnly()
.
getProperties
in interface PropertyStorage
getProperties
in class DataContainer
HashStructure
wrapped by this PropertyStorage.public final HashStructure getPropertiesForOverriding()
public final HashStructure getUserPropertiesOnly()
getUserPropertiesOnly
in class DataContainer
protected void openImpl() throws java.io.IOException
Node
Node.open()
invokes this only if the node is not open, under
write lock. The Node
implementation does nothing.protected void closeImpl() throws java.io.IOException
Node
Node.close()
invokes this only if the node is open, under
write lock. The Node
implementation does nothing.closeImpl
in class DataContainer
java.io.IOException
- if an I/O error occurred while closingprotected void saveImpl() throws java.io.IOException
Node
Node.save()
invokes this only if the node is dirty, under
write lock. The Node
implementation does nothing.saveImpl
in class DataContainer
java.io.IOException
- if an I/O error occurred while savingpublic final void saveUserProperties() throws java.io.IOException
java.io.IOException
protected final ObjectStore newObjectStore()
newObjectStore
in class DataContainer
protected HashStructureIO newHashStructureIO()
protected java.lang.String getNamespaceURI()
protected java.lang.String getRootQName()
protected final java.lang.Object getObjectStoreTarget()
getObjectStoreTarget
in class DataContainer
public boolean isDefault()
true
if this Node is
the default instance.protected boolean isUserPropertiesEnabled()
true
if this HashStructureNode instance should
enable support for keeping a distinct set of user properties from
shared properties. If this method returns false
, the
user properties and shared properties will be the same HashStructure.
The default implementation of this method always returns false. A
subclass has to opt into enabling user properties.public final void applyBatchChanges(java.lang.Runnable runnable)
public boolean equals(java.lang.Object o)
equals
in class DataContainer
protected final boolean equalsImpl(HashStructureNode other)