Package com.tangosol.run.xml
Class IterableAdapter
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.BitHelper
com.tangosol.util.ExternalizableHelper
com.tangosol.run.xml.PropertyAdapter
com.tangosol.run.xml.IterableAdapter
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
ArrayAdapter,CollectionAdapter,MapAdapter,PrimitiveArrayAdapter
An IterableAdapter is the base class for any data type that must be
iterated over to serialize/deserialize, such as arrays, collections
and maps.
<property>
<name>People</name>
<xml-name>people</xml-name> <!-- optional, empty name indicates anonymous element -->
<adapter>...</adapter> <!-- optional -->
<type>...</type> <!-- defaults via reflection -->
<class>...</class> <!-- defaults to <type> -->
<sparse>true</sparse> <!-- defaults to false -->
<empty-is-null>true</empty-is-null> <!-- defaults to false -->
<element> <!-- optional, depends on the adapter -->
<xml-name>person</xml-name> <!-- optional, nests the elements -->
</element>
<property>
Example of collection/array nested within collection tags:
<doc>
<people>
<person>...</person>
<person>...</person>
...
</people>
</doc>
Example of collection/array nested directly within the document:
<doc>
<person>...</person>
<person>...</person>
...
</doc>
Example of map nested within collection tags:
<doc>
<people>
<person>
<name>...</name>
<number>...</number>
</person>
<person>
<name>...</name>
<number>...</number>
</person>
...
</people>
</doc>
Example of map nested directly within the document:
<doc>
<person>
<name>...</name>
<number>...</number>
</person>
<person>
<name>...</name>
<number>...</number>
</person>
...
</doc>
- Version:
- 1.00 2001.03.18
- Author:
- cp
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelper
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCacheNested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanEmpty-is-null option: Empty iterable values are not stored in the serialized form of the XmlBean nor in the XML form of the XmlBean.protected booleanSparse array storage option.protected StringName used for each element of the array when formatted into XML.Fields inherited from class com.tangosol.run.xml.PropertyAdapter
m_clzType, m_fAttribute, m_infoBean, m_methodClone, m_methodGet, m_methodSet, m_sName, m_sNmsPrefix, m_sNmsUri, m_sXml, NOPARAMSFields inherited from class com.tangosol.util.ExternalizableHelper
BINARY_SIZE, CHUNK_SIZE, CHUNK_THRESHOLD, CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, DECO_BACKUP, 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_STORE, DECO_TOPLINK, 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, LAMBDA_SERIALIZATION, MAX_DECO_HEADER_BYTES, PACKED_INT_SIZE, PACKED_LONG_SIZE, PROPERTY_CONFIG, s_streamfactory, s_tloInEHDeserialize, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE -
Constructor Summary
ConstructorsConstructorDescriptionIterableAdapter(XmlBean.BeanInfo infoBean, Class clzType, String sName, String sXml, XmlElement xml) Construct a IterableAdapter. -
Method Summary
Modifier and TypeMethodDescriptionprotected PropertyAdapterfindAdapter(XmlBean.BeanInfo infoBean, XmlElement xml) Obtain a PropertyAdapapter for a map entry key or valuefromXml(XmlElement xml) Deserialize an object from an XML element.booleanDetermine if the property value must be deep-cloned.booleanbooleanisNested()booleanisSparse()protected abstract ObjectreadElements(XmlElement xml) Serialize an object into an XML element.protected abstract voidwriteElements(XmlElement xml, Object o) Methods inherited from class com.tangosol.run.xml.PropertyAdapter
clone, equalsValue, findAttribute, findElement, fromUri, get, getAccessor, getBeanInfo, getCloner, getElements, getLocalXmlName, getMutator, getName, getNamespacePrefix, getNamespaceUri, getType, getXmlName, hash, isAnonymous, isAttribute, isElementMatch, isEmpty, readExternal, readXml, set, setNamespacePrefix, toString, toUri, writeExternal, writeXmlMethods inherited from class com.tangosol.util.ExternalizableHelper
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, checkObjectInputFilter, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getConfigSerialFilter, getConfigSerialFilterFactory, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectInputFilter, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isPatchCompatible, isPatchCompatible, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readBooleanArray, readByteArray, readCharArray, readCharArray, readCollection, readDate, readDoubleArray, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readFloatArray, readInt, readInt, readIntArray, readIntArray, readIntArray2d, readLargeBooleanArray, readLargeByteArray, readLargeCharArray, readLargeDoubleArray, readLargeFloatArray, readLargeIntArray, readLargeLongArray, readLargeObjectArray, readLargeStringArray, readLong, readLong, readLongArray, readLongArray, readMap, readMap, readObject, readObject, readObjectArray, readObjectArray, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, validateLoadArray, validateLoadClass, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray, writeIntArray2d, writeLong, writeLong, writeLongArray, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializableMethods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLongMethods inherited from class com.tangosol.util.Base
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, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, newHashMap, newHashMap, newHashSet, newHashSet, 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
-
Field Details
-
m_fSparse
protected boolean m_fSparseSparse array storage option. -
m_fEmptyIsNull
protected boolean m_fEmptyIsNullEmpty-is-null option: Empty iterable values are not stored in the serialized form of the XmlBean nor in the XML form of the XmlBean. -
m_sElement
Name used for each element of the array when formatted into XML. If null, then the elements are placed directly into the document using the adapter's XML name.
-
-
Constructor Details
-
IterableAdapter
public IterableAdapter(XmlBean.BeanInfo infoBean, Class clzType, String sName, String sXml, XmlElement xml) Construct a IterableAdapter.- Parameters:
infoBean- BeanInfo for a bean containing this propertyclzType- the type of the propertysName- the property namesXml- the XML tag namexml- additional XML information
-
-
Method Details
-
isCloneRequired
public boolean isCloneRequired()Description copied from class:PropertyAdapterDetermine if the property value must be deep-cloned. Typically, a property value must be deep-cloned if it is a mutable reference type, e.g. StringBuffer, Date, byte[].- Specified by:
isCloneRequiredin classPropertyAdapter- Returns:
- true if the property value must be "deep" cloned when the containing object is cloned
-
isSparse
public boolean isSparse()- Returns:
- true if the iterable data should be stored in a sparse format in XML
-
isEmptyIsNull
public boolean isEmptyIsNull()- Returns:
- true if the iterable data should not be stored at all if it is empty, such as a zero-length array or empty collection
-
getElementName
- Returns:
- the local XML name of the individual array elements (null if the array elements are nested directly within the document)
-
isNested
public boolean isNested()- Returns:
- true only if this adapter creates a single XML element on writeXml and reads from a single XML element on readXml
-
fromXml
Deserialize an object from an XML element.- Overrides:
fromXmlin classPropertyAdapter- Parameters:
xml- the XML element to deserialize from- Returns:
- the object deserialized from the XML element
- Throws:
UnsupportedOperationException- if the property cannot be read from a single XML element
-
toXml
Serialize an object into an XML element.- Overrides:
toXmlin classPropertyAdapter- Parameters:
o- the object to serialize- Returns:
- the XML element representing the serialized form of the passed object
- Throws:
UnsupportedOperationException- if the property cannot be written to a single XML element
-
readElements
- Parameters:
xml- the XML element containing the XML elements to deserialize from- Returns:
- the object deserialized from the XML (not null)
-
writeElements
- Parameters:
xml- the XML element to which the iterable elements are writteno- the object to serialize (not null)
-
findAdapter
Obtain a PropertyAdapapter for a map entry key or value- Parameters:
infoBean- BeanInfo for a bean containing this propertyxml- the information about the map entry key or value- Returns:
- a PropertyAdapter for the map entry key or value
-