Creating special elements

Most of the elements can be created in one of the five approaches listed in Instantiating an element. However, sub type elements are not created in those five ways:
  1. Arguments

    The tag name arguments is reserved for ElementFactory. When you want to invoke a method against something, you need to define arguments as the input for the method.

    For example, in order to call constructor method of SimpleElement public SimpleElement(String a, int b, String c), you need to define the arguments as follows:
    <arguments>
        <string ArgumentType="java.lang.String" value="valueA"/>
        <integer ArgumentType="int" value="12345"/>
        <string ArgumentType="java.lang.String" value="valueC"/>
    </arguments>

    For each element in the arguments, you need to define an attribute ArgumentType, which is the type of argument in the method declaration; and the sub-elements needs to be exactly in the sequence of the arguments in the method declaration. This principle also applies to instantiating element by static factory and instance factory.

  2. Entry

    The element entry is used to define entries in a java.util.Map. The tag name entry is also reserved. See Defining collections.

  3. Simple elements

    There are some built-in data types in Java™ language that cannot be instantiated by default constructor, constructor, static factory or instance factory. They are treated as simple elements and the ElementFactory can handle them.

    The following table lists all the supported simple elements and the sample definitions.
    Table 1. Supported simple elements
    Class Tag name Sample definition
    java.lang.String string <string value="valueA"/>
    java.lang.Integer integer <integer value="12345"/>
    java.lang.Long long <long value="12345"/>
    java.lang.Short short <short value="12"/>
    java.lang.Byte byte <byte value="12"/>
    java.lang.Charactor char <char value="a"/>
    java.lang.Float float <float value="1234.5"/>
    java.lang.Boolean boolean <integer value="true"/>