Class XMLTypeCompiler

java.lang.Object
org.apache.derby.impl.sql.compile.BaseTypeCompiler
org.apache.derby.impl.sql.compile.XMLTypeCompiler
All Implemented Interfaces:
TypeCompiler

public class XMLTypeCompiler extends BaseTypeCompiler
This class implements TypeCompiler for the XML type.
  • Constructor Details

    • XMLTypeCompiler

      public XMLTypeCompiler()
  • Method Details

    • convertible

      public boolean convertible(TypeId otherType, boolean forDataTypeFunction)
      Tell whether this type (XML) can be converted to the given type. An XML value can't be converted to any other type, per SQL/XML[2003] 6.3
      Parameters:
      otherType - The CompilationType of the other type to compare this type to
      forDataTypeFunction - true if this is a type function that requires more liberal behavior (e.g DOUBLE can convert a char but you cannot cast a CHAR to double.
      Returns:
      true if the types can be converted, false if conversion is not allowed
      See Also:
    • compatible

      public boolean compatible(TypeId otherType)
      Tell whether this type (XML) is compatible with the given type.
      Parameters:
      otherType - The TypeId of the other type.
      Returns:
      true if the types are compatible, false if not compatible
    • storable

      public boolean storable(TypeId otherType, ClassFactory cf)
      Tell whether this type (XML) can be stored into from the given type. Only XML values can be stored into an XML type, per SQL/XML spec: 4.2.2 XML comparison and assignment Values of XML type are assignable to sites of XML type.
      Parameters:
      otherType - The TypeId of the other type.
      cf - A ClassFactory
      Returns:
      true if the other type can be stored in a column of this type.
    • interfaceName

      public String interfaceName()
      Description copied from interface: TypeCompiler
      Get the name of the interface for this type. For example, the interface for a SQLInteger is NumberDataValue. The full path name of the type is returned.
      Returns:
      The name of the interface for this type.
      See Also:
    • getCorrespondingPrimitiveTypeName

      public String getCorrespondingPrimitiveTypeName()
      Description copied from interface: TypeCompiler
      Get the name of the corresponding Java type. For numerics and booleans we will get the corresponding Java primitive type. e Each SQL type has a corresponding Java type. When a SQL value is passed to a Java method, it is translated to its corresponding Java type. For example, a SQL Integer will be mapped to a Java int, but a SQL date will be mapped to a java.sql.Date.
      Returns:
      The name of the corresponding Java primitive type.
      See Also:
    • getCastToCharWidth

      public int getCastToCharWidth(DataTypeDescriptor dts)
      Description copied from interface: TypeCompiler
      Return the maximum width for this data type when cast to a char type.
      Parameters:
      dts - The associated DataTypeDescriptor for this TypeId.
      Returns:
      int The maximum width for this data type when cast to a char type.
      See Also:
    • nullMethodName

      String nullMethodName()
      Description copied from class: BaseTypeCompiler
      Return the method name to get a Derby DataValueDescriptor object of the correct type set to SQL NULL. The method named will be called with one argument: a holder object if pushCollationForDataValue() returns false, otherwise two arguments, the second being the collationType.
      Specified by:
      nullMethodName in class BaseTypeCompiler
      See Also:
    • dataValueMethodName

      protected String dataValueMethodName()
      Description copied from class: BaseTypeCompiler
      Return the method name to get a Derby DataValueDescriptor object of the correct type and set it to a specific value. The method named will be called with two arguments, a value to set the returned value to and a holder object if pushCollationForDataValue() returns false. Otherwise three arguments, the third being the collationType. This implementation returns "getDataValue" to map to the overloaded methods DataValueFactory.getDataValue(type, dvd type)
      Overrides:
      dataValueMethodName in class BaseTypeCompiler
      See Also: