Class PrimitiveFactory

java.lang.Object
org.simpleframework.xml.core.Factory
org.simpleframework.xml.core.PrimitiveFactory
Direct Known Subclasses:
ObjectFactory

class PrimitiveFactory extends Factory
The PrimitiveFactory object is used to create objects that are primitive types. This creates primitives and enumerated types when given a string value. The string value is parsed using a matched Transform implementation. The transform is then used to convert the object instance to an from a suitable XML representation. Only enumerated types are not transformed using a transform, instead they use Enum.name.
See Also:
  • Constructor Details

    • PrimitiveFactory

      public PrimitiveFactory(Context context, Type type)
      Constructor for the PrimitiveFactory object. This is provided the field type that is to be instantiated. This must be a type that contains a Transform object, typically this is a java.lang primitive object or one of the primitive types such as int. Also this can be given a class for an enumerated type.
      Parameters:
      context - this is the context used by this factory
      type - this is the field type to be instantiated
    • PrimitiveFactory

      public PrimitiveFactory(Context context, Type type, Class override)
      Constructor for the PrimitiveFactory object. This is provided the field type that is to be instantiated. This must be a type that contains a Transform object, typically this is a java.lang primitive object or one of the primitive types such as int. Also this can be given a class for an enumerated type.
      Parameters:
      context - this is the context used by this factory
      type - this is the field type to be instantiated
      override - this is the override used for this primitve
  • Method Details

    • getInstance

      public Instance getInstance(InputNode node) throws Exception
      This method will instantiate an object of the field type, or if the Strategy object can resolve a class from the XML element then this is used instead. If the resulting type is abstract or an interface then this method throws an exception.
      Parameters:
      node - this is the node to check for the override
      Returns:
      this returns an instance of the resulting type
      Throws:
      Exception
    • getInstance

      public Object getInstance(String text, Class type) throws Exception
      This will instantiate an object of the field type using the provided string. Typically this string is transformed in to the type using a Transform object. However, if the values is an enumeration then its value is created using the Enum.valueOf method. Also string values typically do not require conversion of any form and are just returned.
      Parameters:
      text - this is the value to be transformed to an object
      type - this is the type of the primitive to instantiate
      Returns:
      this returns an instance of the field type
      Throws:
      Exception
    • getText

      public String getText(Object source) throws Exception
      This is used to acquire a text value for the specified object. This will convert the object to a string using the transformer so that it can be deserialized from the generate XML document. However if the type is an Enum type then the text value is taken from Enum.name so it can later be deserialized easily using the enumeration class and name.
      Parameters:
      source - this is the object instance to get the value of
      Returns:
      this returns a string representation of the object
      Throws:
      Exception - if the object could not be transformed