Class ArrayAdapter

All Implemented Interfaces:
Serializable

public class ArrayAdapter extends IterableAdapter
An ArrayAdapter supports properties of Java array types (not including arrays of primitive types).

 <property>
   <name>People</name>
   <xml-name>people</xml-name>         <!-- defaults to <name> -->
   <type>com...Person[]</type>         <!-- defaults via reflection -->
   <class>com...Person[]</class>       <!-- defaults from <type> -->
   <sparse>true</sparse>               <!-- defaults to false -->
   <empty-is-null>true</empty-is-null> <!-- defaults to false -->
   <element>                           <!-- optional -->
     <xml-name>person</xml-name>       <!-- optional, nests the elements -->
     <type>com...Person</type>         <!-- auto-set from <property><class> -->
     <adapter>...</adapter>            <!-- optional -->
     <...>                             <!-- for the type-specific adapter -->
   </element>
 </property>
 
Example of collection nested within collection tags:

   <doc>
     <people>
       <person>
         <...>
       </person>
       <person>
         <...>
       </person>
       ...
     </people>
   </doc>
 
Version:
1.00 2001.03.18
Author:
cp
See Also:
  • Constructor Details

    • ArrayAdapter

      public ArrayAdapter(XmlBean.BeanInfo infoBean, Class clzType, String sName, String sXml, XmlElement xml)
      Construct a ArrayAdapter.
      Parameters:
      infoBean - BeanInfo for a bean containing this property
      clzType - the type of the property
      sName - the property name
      sXml - the XML tag name
      xml - additional XML information
  • Method Details

    • hash

      public int hash(Object o)
      compute a hash code for the passed object.
      Overrides:
      hash in class PropertyAdapter
      Parameters:
      o - the object to compute a hash code for
      Returns:
      an integer hash code
    • equalsValue

      public boolean equalsValue(Object o1, Object o2)
      Compare the two passed objects for equality.
      Overrides:
      equalsValue in class PropertyAdapter
      Parameters:
      o1 - the first object
      o2 - the second object
      Returns:
      true if the two objects are equal
    • clone

      public Object clone(Object o)
      Make a clone of the passed object.
      Overrides:
      clone in class PropertyAdapter
      Parameters:
      o - the object to clone
      Returns:
      a clone of the passed object
    • readElements

      protected Object readElements(XmlElement xml)
      Specified by:
      readElements in class IterableAdapter
      Parameters:
      xml - the XML element containing the XML elements to deserialize from
      Returns:
      the object deserialized from the XML (not null)
    • writeElements

      protected void writeElements(XmlElement xml, Object o)
      Specified by:
      writeElements in class IterableAdapter
      Parameters:
      xml - the XML element to which the iterable elements are written
      o - the object to serialize (not null)
    • readExternal

      public Object readExternal(DataInput in) throws IOException
      Read a value from the passed DataInput object.
      Overrides:
      readExternal in class PropertyAdapter
      Parameters:
      in - the DataInput stream to read property data from
      Returns:
      the data read from the DataInput; never null
      Throws:
      IOException - if an I/O exception occurs
    • readArray

      protected Object[] readArray(DataInput in, int c) throws IOException
      Read an array of specified length from the passed DataInput object.
      Parameters:
      in - the DataInput stream to read property data from
      Returns:
      the data read from the DataInput; never null
      Throws:
      IOException - if an I/O exception occurs
    • readLargeArray

      protected Object[] readLargeArray(DataInput in, int c) throws IOException
      Read an array of property data with length larger than ExternalizableHelper.CHUNK_THRESHOLD >> 4.
      Parameters:
      in - the DataInput stream to read property data from
      Returns:
      the data read from the DataInput; never null
      Throws:
      IOException - if an I/O exception occurs
    • writeExternal

      public void writeExternal(DataOutput out, Object o) throws IOException
      Write the specified data to the passed DataOutput object.
      Overrides:
      writeExternal in class PropertyAdapter
      Parameters:
      out - the DataOutput stream to write to
      o - the data to write to the DataOutput; never null
      Throws:
      IOException - if an I/O exception occurs
    • isEmpty

      public boolean isEmpty(Object o)
      Determine if the specified value is empty.
      Overrides:
      isEmpty in class PropertyAdapter
      Parameters:
      o - the value
      Returns:
      true if the object is considered to be empty for persistence and XML-generation purposes