public class UniversalUpdater extends AbstractUpdater implements ExternalizableLite, PortableObject
Either a property-based and method-based ValueUpdater
based on whether constructor parameter sName
is evaluated to be a property or method.
Depending on the target
parameter of update(Object, Object)
target
,
the property can reference a JavaBean property or Map
key.
CompositeUpdater
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCache
Base.LoggingWriter, Base.StackFrame
Modifier and Type | Field and Description |
---|---|
static String |
BEAN_MODIFIER_PREFIX
JavaBean property modifier prefix.
|
protected String |
m_sName
A method name, or a property name.
|
static String |
METHOD_SUFFIX
If
m_sName ends with this suffix, it represents a method name. |
CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, DECO_CUSTOM, DECO_EXPIRY, DECO_ID_MAX, DECO_ID_MIN, DECO_JCACHE, DECO_JCACHE_SYNTHETIC, DECO_MEMCACHED, DECO_PUSHREP, DECO_QUEUE_METADATA, DECO_RSVD_1, DECO_RSVD_2, DECO_STORE, DECO_TX, DECO_VALUE, DECO_WLS, EMPTY_BINARY_ARRAY, FMT_B_ARRAY, FMT_BIN_DECO, FMT_BIN_EXT_DECO, FMT_BINARY, FMT_BOOLEAN, FMT_BYTE, FMT_DECIMAL, FMT_DOUBLE, FMT_EXT, FMT_FLOAT, FMT_IDO, FMT_INT, FMT_INTEGER, FMT_LONG, FMT_NONE, FMT_NULL, FMT_OBJ_EXT, FMT_OBJ_SER, FMT_OPT, FMT_OPT_DOUBLE, FMT_OPT_INT, FMT_OPT_LONG, FMT_SHORT, FMT_STRING, FMT_UNKNOWN, FMT_XML_BEAN, FMT_XML_SER, FORCE_RESOLVING_STREAMS, MAX_DECO_HEADER_BYTES, PROPERTY_CONFIG, s_streamfactory, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
Constructor and Description |
---|
UniversalUpdater()
Default constructor (necessary for the ExternalizableLite interface).
|
UniversalUpdater(String sName)
Construct a UniversalUpdater for the provided name.
|
Modifier and Type | Method and Description |
---|---|
static String |
computeCanonicalName(String sName)
Compute the canonical name for this updater.
|
static ValueUpdater |
createUpdater(String sNames)
Return a
ValueUpdater for sNames |
boolean |
equals(Object o)
Compare the UniversalUpdater with another object to determine
equality.
|
String |
getCanonicalName()
Return the canonical name for this updater.
|
String |
getMethodName()
Determine the name of the method that this extractor is configured to
invoke.
|
int |
hashCode()
Determine a hash value for the UniversalUpdater object according to
the general
Object.hashCode() contract. |
boolean |
isMethodUpdater()
Return true iff this updater references a setter method.
|
void |
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from
the passed DataInput object.
|
void |
readExternal(PofReader in)
Restore the contents of a user type instance by reading its state using
the specified PofReader object.
|
String |
toString()
Provide a human-readable description of this ValueUpdater object.
|
void |
update(Object oTarget,
Object oValue)
Update the state of the passed target object using the passed value.
|
protected void |
updateComplex(Object oTarget,
Object oValue)
Implement update of target using reflection or property setter.
|
void |
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into
the passed DataOutput object.
|
void |
writeExternal(PofWriter out)
Save the contents of a POF user type instance by writing its state using
the specified PofWriter object.
|
updateEntry
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readByteArray, readCollection, readDate, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readInt, readInt, readIntArray2d, readLong, readLong, readMap, readMap, readObject, readObject, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray2d, writeLong, writeLong, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializable
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLong
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
public static final String BEAN_MODIFIER_PREFIX
public static final String METHOD_SUFFIX
m_sName
ends with this suffix, it represents a method name.protected String m_sName
public UniversalUpdater()
public UniversalUpdater(String sName)
sName
ends in a METHOD_SUFFIX
,
then the name is a method name. This implementation assumes that a
target's class will have one and only one method with the
specified name and this method will have exactly one parameter;
if the name is a property name, there should be a corresponding
JavaBean property modifier method or it will be used as a key in a Map
.sName
- a method or property namecomputeCanonicalName(String)
public void update(Object oTarget, Object oValue)
update
in interface ValueUpdater
update
in class AbstractUpdater
oTarget
- the Object to update the state ofoValue
- the new value to update the state withupdateComplex(Object, Object)
public boolean isMethodUpdater()
public String getMethodName()
METHOD_SUFFIX
public String getCanonicalName()
protected void updateComplex(Object oTarget, Object oValue) throws InvocationTargetException, IllegalAccessException
If unable to find method name via reflection and oTarget
is a Map
, use canonical name as a key
to update target.
oTarget
- the Object to update the state ofoValue
- the new value to update the state withInvocationTargetException
- if reflection method lookup failsIllegalAccessException
- if reflection method lookup failspublic static String computeCanonicalName(String sName)
sName
does not end with a METHOD_SUFFIX
, it
is the canonical name of a property.
If sName
begins with BEAN_MODIFIER_PREFIX
and
ends with METHOD_SUFFIX
, the canonical name is sName
value with prefix and suffix removed and the canonical name is for a property.
Otherwise, the canonical name is the sName
and refers to
method name.sName
- a method or property namepublic static ValueUpdater createUpdater(String sNames)
ValueUpdater
for sNames
sNames
- property or setter method name;
this parameter can also be a dot-delimited sequence
of property and/or method names which would result in using a
CompositeUpdater
sNames
public boolean equals(Object o)
public int hashCode()
Object.hashCode()
contract.public String toString()
public void readExternal(DataInput in) throws IOException
readExternal
in interface ExternalizableLite
in
- the DataInput stream to read data from in order to restore
the state of this objectIOException
- if an I/O exception occursNotActiveException
- if the object is not in its initial
state, and therefore cannot be deserialized intopublic void writeExternal(DataOutput out) throws IOException
writeExternal
in interface ExternalizableLite
out
- the DataOutput stream to write the state of this object toIOException
- if an I/O exception occurspublic void readExternal(PofReader in) throws IOException
readExternal
in interface PortableObject
in
- the PofReader from which to read the object's stateIOException
- if an I/O error occurspublic void writeExternal(PofWriter out) throws IOException
writeExternal
in interface PortableObject
out
- the PofWriter to which to write the object's stateIOException
- if an I/O error occurs