public abstract class PersistableDefault extends java.lang.Object implements Persistable, Printable
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
enabled |
protected static java.lang.String |
FAILED_RETRIEVE_VALUE |
protected java.util.Map<java.lang.String,java.lang.String> |
fieldNameToPersistKeyMap
a cache holding the Map of (fieldName, persistKey)
|
protected Persistable |
parent |
protected java.util.Map<java.lang.String,java.lang.Object> |
persistKeyToFieldValueMap
a cache holding the Map of (persistKey, fieldValue)
|
protected int |
tabulation |
protected int |
threshold |
protected boolean |
thresholdEnabled |
protected static java.lang.String |
UNKNOWN_VALUE |
CONTAINER_ELEMENTDATA_BIGGER_THAN_THRESHOLD| Modifier | Constructor and Description |
|---|---|
|
PersistableDefault() |
protected |
PersistableDefault(int ignoredFiledModifiers)
Construct a PersistableDefault with modifier to filter the field for persisting.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(java.lang.Object obj)
If
The parameter obj is also a Persistable.
|
java.util.Map<java.lang.String,java.lang.Object> |
getContents()
This method use Java reflection to get the value of the field defined in
getPersitableFields(). |
java.util.Map<java.lang.String,java.lang.Object> |
getContents(java.util.Map<java.lang.String,java.lang.String> elementAlternativeValues,
java.util.Set<java.lang.String> ignoredFields,
boolean includeContainer)
Turn the Persistable hierarchical contents Map (
Persistable.getContents()) into a flat-key Map. |
java.lang.Object |
getField(java.lang.String persistKey)
Get the field's value of this Persistable object according to the persist-key.
The field name can be got from Persistable.getPersitableFields() according to the persist-key, then the value will be got of that field. |
java.lang.String |
getFlatKey()
A Persistable object can contain other Persistable objects, it is an hierarchical structure.
|
Persistable |
getParent() |
java.util.Map<java.lang.String,java.lang.String> |
getPersitableFields()
This default implementation get all the declared fields
Class.getDeclaredFields() and
put their name as 'fieldName' and 'persistKey' into the 'persistableFields Map'. |
int |
getTabulation() |
static java.lang.String |
getTagName(java.lang.String className)
Convert a full qualified class name into a tag name.
|
int |
getThreshold() |
protected boolean |
ignoreFieldForPersist(java.lang.reflect.Field field) |
boolean |
isEnabled()
Tell us if this object will be persisted or not.
|
boolean |
isIgnoredContentCache() |
boolean |
isThresholdEnabled()
If enabled, then the data bigger than the 'threshold' will not be printed out.
|
void |
setEnabled(boolean enabled)
Sometimes, we don't want to persist an object, we disable it.
|
boolean |
setField(java.lang.String persistKey,
java.lang.Object value)
Set the field's value of this Persistable object to the persist-key.
The field name can be got from Persistable.getPersitableFields() according to the persist-key, then the value will be set to that field. |
void |
setIgnoredContentCache(boolean ignoredContentCache) |
void |
setParent(Persistable parent)
|
void |
setTabulation(int tabulation) |
void |
setThreshold(int threshold) |
void |
setThresholdEnabled(boolean thresholdEnabled)
Enable/disable the "threshold ability".
If enabled, then the data bigger than the 'threshold' will not be printed out. |
java.lang.String |
toString() |
protected static final java.lang.String UNKNOWN_VALUE
protected static final java.lang.String FAILED_RETRIEVE_VALUE
protected java.util.Map<java.lang.String,java.lang.String> fieldNameToPersistKeyMap
protected java.util.Map<java.lang.String,java.lang.Object> persistKeyToFieldValueMap
protected boolean enabled
protected Persistable parent
protected int tabulation
protected int threshold
protected boolean thresholdEnabled
public PersistableDefault()
protected PersistableDefault(int ignoredFiledModifiers)
Note: This constructor is protected, and it is suggested to call it in a constructor without parameter to keep the consistency between "pickle" and "unpickle". If user makes it public in a child class and create a Persistable object with it, then inconsistency may happen between "pickle" and "unpickle", because "unpickle" uses the constructor without parameter, which is different than this one.
ignoredFiledModifiers - int, the modifier used to filter the field for persisting.ignoredFiledModifierspublic java.util.Map<java.lang.String,java.lang.String> getPersitableFields()
Class.getDeclaredFields() and
put their name as 'fieldName' and 'persistKey' into the 'persistableFields Map'. But if
ignoreFieldForPersist(Field) returns true, then that field will not get into 'persistableFields Map'.getPersitableFields in interface PersistableignoreFieldForPersist(Field)protected boolean ignoreFieldForPersist(java.lang.reflect.Field field)
field - Field, the field to test.getPersitableFields()public java.util.Map<java.lang.String,java.lang.Object> getContents()
getPersitableFields().getContents in interface Persistablepublic java.lang.Object getField(java.lang.String persistKey)
PersistablePersistable.getPersitableFields() according to the persist-key, then the value will be got of that field.getField in interface PersistablepersistKey - String, the persist-key (it can be tag-name in XML, key-string in JSON etc.). refer to Persistable.getPersitableFields().public boolean setField(java.lang.String persistKey,
java.lang.Object value)
PersistablePersistable.getPersitableFields() according to the persist-key, then the value will be set to that field.setField in interface PersistablepersistKey - String, the persist-key (it can be tag-name in XML, key-string in JSON etc.). refer to Persistable.getPersitableFields().value - Object, the value to setpublic boolean isEnabled()
PersistableisEnabled in interface Persistablepublic void setEnabled(boolean enabled)
PersistablesetEnabled in interface Persistableenabled - boolean, if true, this object will be persisted; otherwise, will not.public void setParent(Persistable parent)
PersistablePersistor and Verifier can work correctly.setParent in interface Persistableparent - Persistable,public Persistable getParent()
getParent in interface Persistablepublic static java.lang.String getTagName(java.lang.String className)
className - String the full qualified class name.public java.lang.String getFlatKey()
PersistablegetFlatKey in interface Persistable#getContents(Map, Set)public java.util.Map<java.lang.String,java.lang.Object> getContents(java.util.Map<java.lang.String,java.lang.String> elementAlternativeValues,
java.util.Set<java.lang.String> ignoredFields,
boolean includeContainer)
PersistablePersistable.getContents()) into a flat-key Map.getContents in interface PersistableelementAlternativeValues - MapignoredFields - SetIf this Set contains a field 'Response.Request', then all its children will be ignored, such as: Response.Request.Headers Response.Request.MessageBody ...
includeContainer - boolean, in, if the Persistable Object itself should be considered as part of the whole contents.
(Response.ID, "FFE3543545JLFS")
(Response.Headers, "{Date=Tue, 06 DEC 2016 03:08:12 GMT}")
(Response.Request.Headers, "{Content-Length=4574, Via=1.1 inetgw38 (squid)}")
public void setThreshold(int threshold)
setThreshold in interface Printablethreshold - int, the size of the data too big to print.public int getThreshold()
getThreshold in interface Printablepublic boolean isThresholdEnabled()
PrintableisThresholdEnabled in interface Printablepublic void setThresholdEnabled(boolean thresholdEnabled)
PrintablesetThresholdEnabled in interface Printablepublic int getTabulation()
getTabulation in interface Printablepublic void setTabulation(int tabulation)
setTabulation in interface Printabletabulation - int, The number of tabulation to print before the actual message.public boolean isIgnoredContentCache()
public void setIgnoredContentCache(boolean ignoredContentCache)
public java.lang.String toString()
toString in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
getPersitableFields() are same
getPersitableFields() are same
equals in class java.lang.ObjectCopyright © SAS Institute. All Rights Reserved.