E - the class that this descriptor will be describing for DocumentProvider,
Document, and ultimately DOM.public abstract class AbstractChainedDescriptor<E> extends Descriptor implements ChainedDescriptor
Descriptor and provides a canonical implementation of
ChainedDescriptor.
This class implements the thread safety enforcement policy prescribed by
ThreadBound. Namely, that Descriptor.verifyThreadAccess()} needs to be called in the
prologue for every method. Your derived class SHOULD NOT call Descriptor.verifyThreadAccess()} in
any of its on___() methods.
(NOTE: As an optimization, Descriptor.verifyThreadAccess() is not actually called in the
prologue for every method. Instead, we rely on DocumentProvider.getNodeDescriptor(Object)
calling it in order to get most of our enforcement coverage. We still call
Descriptor.verifyThreadAccess() in a few important methods such as hook(Object) and
unhook(Object) (anything that writes or is potentially really dangerous if misused).Descriptor.Host| Constructor and Description |
|---|
AbstractChainedDescriptor() |
| Modifier and Type | Method and Description |
|---|---|
void |
getAttributes(java.lang.Object element,
AttributeAccumulator attributes) |
void |
getChildren(java.lang.Object element,
Accumulator<java.lang.Object> children) |
java.lang.String |
getLocalName(java.lang.Object element) |
java.lang.String |
getNodeName(java.lang.Object element) |
NodeType |
getNodeType(java.lang.Object element) |
java.lang.String |
getNodeValue(java.lang.Object element) |
void |
getStyles(java.lang.Object element,
StyleAccumulator accumulator) |
void |
hook(java.lang.Object element) |
protected void |
onGetAttributes(E element,
AttributeAccumulator attributes) |
protected void |
onGetChildren(E element,
Accumulator<java.lang.Object> children) |
protected java.lang.String |
onGetLocalName(E element) |
protected java.lang.String |
onGetNodeName(E element) |
protected NodeType |
onGetNodeType(E element) |
java.lang.String |
onGetNodeValue(E element) |
protected void |
onGetStyles(E element,
StyleAccumulator accumulator) |
protected void |
onHook(E element) |
protected void |
onSetAttributesAsText(E element,
java.lang.String text) |
protected void |
onUnhook(E element) |
void |
setAttributesAsText(java.lang.Object element,
java.lang.String text) |
void |
setSuper(Descriptor superDescriptor) |
void |
unhook(java.lang.Object element) |
checkThreadAccess, getHost, parseSetAttributesAsTextArg, postAndWait, postAndWait, postDelayed, removeCallbacks, verifyThreadAccesspublic void setSuper(Descriptor superDescriptor)
setSuper in interface ChainedDescriptorpublic final void hook(java.lang.Object element)
hook in interface NodeDescriptorprotected void onHook(E element)
public final void unhook(java.lang.Object element)
unhook in interface NodeDescriptorprotected void onUnhook(E element)
public final NodeType getNodeType(java.lang.Object element)
getNodeType in interface NodeDescriptorpublic final java.lang.String getNodeName(java.lang.Object element)
getNodeName in interface NodeDescriptorprotected java.lang.String onGetNodeName(E element)
public final java.lang.String getLocalName(java.lang.Object element)
getLocalName in interface NodeDescriptorprotected java.lang.String onGetLocalName(E element)
public final java.lang.String getNodeValue(java.lang.Object element)
getNodeValue in interface NodeDescriptorpublic java.lang.String onGetNodeValue(E element)
public final void getChildren(java.lang.Object element,
Accumulator<java.lang.Object> children)
getChildren in interface NodeDescriptorprotected void onGetChildren(E element, Accumulator<java.lang.Object> children)
public final void getAttributes(java.lang.Object element,
AttributeAccumulator attributes)
getAttributes in interface NodeDescriptorprotected void onGetAttributes(E element, AttributeAccumulator attributes)
public final void setAttributesAsText(java.lang.Object element,
java.lang.String text)
setAttributesAsText in interface NodeDescriptorprotected void onSetAttributesAsText(E element, java.lang.String text)
public final void getStyles(java.lang.Object element,
StyleAccumulator accumulator)
getStyles in interface NodeDescriptorprotected void onGetStyles(E element, StyleAccumulator accumulator)