Class ListOfTypeDatatype

java.lang.Object
org.faktorips.datatype.AbstractDatatype
org.faktorips.datatype.ListOfTypeDatatype
All Implemented Interfaces:
Comparable<Datatype>, Datatype, ValueDatatype

public class ListOfTypeDatatype extends AbstractDatatype implements ValueDatatype
Datatype representing a list of objects of a basic datatype.

This datatype is currently only used when navigating associations in expressions. Therefore no DatatypeHelper exists and this datatype is not usable in attributes.

Author:
schwering
Since:
3.6
  • Constructor Details

    • ListOfTypeDatatype

      public ListOfTypeDatatype(Datatype basicType)
      Constructs a new List type based on the given underlying basic type.
  • Method Details

    • getBasicDatatype

      public Datatype getBasicDatatype()
      Returns the List type's basic type. E.g. for a list of policy values, Policy is the basic type.
    • isImmutable

      public boolean isImmutable()
      Description copied from interface: ValueDatatype
      Returns true if this is an immutable datatype, false otherwise.
      Specified by:
      isImmutable in interface ValueDatatype
      Returns:
      whether this is an immutable datatype
    • isMutable

      public boolean isMutable()
      Description copied from interface: ValueDatatype
      Returns true if this is a mutable datatype, false if it is an immutable datatype.
      Specified by:
      isMutable in interface ValueDatatype
      Returns:
      whether this is a mutable datatype
    • getName

      public String getName()
      Description copied from interface: Datatype
      Returns the datatype's name.
      Specified by:
      getName in interface Datatype
    • getQualifiedName

      public String getQualifiedName()
      Description copied from interface: Datatype
      Returns the datatype's qualified name.

      The qualified name identifies the datatype.

      Specified by:
      getQualifiedName in interface Datatype
    • isPrimitive

      public boolean isPrimitive()
      Description copied from interface: Datatype
      Returns true if this datatype represents one of Java's primitive types.
      Specified by:
      isPrimitive in interface Datatype
    • isAbstract

      public boolean isAbstract()
      Description copied from interface: Datatype
      Returns true if this datatype is an abstract datatype in means of the object oriented paradigm.
      Specified by:
      isAbstract in interface Datatype
    • getDefaultValue

      public String getDefaultValue()
      Description copied from interface: ValueDatatype
      Returns the datatype's default value. For datatypes representing objects the method returns null. For datatypes representing Java primitives the Java default value is returned, e.g. 0 for int.
      Specified by:
      getDefaultValue in interface ValueDatatype
      See Also:
    • isValueDatatype

      public boolean isValueDatatype()
      Description copied from interface: Datatype
      Returns true if this datatype represents values.

      If the method returns true, the datatype can be safely casted to ValueDatatype.

      Specified by:
      isValueDatatype in interface Datatype
    • getWrapperType

      public ValueDatatype getWrapperType()
      Description copied from interface: ValueDatatype
      If this datatype represents a primitive type, this method returns the datatype that represents the wrapper class. Returns null if this datatype does not represent a primitive.
      Specified by:
      getWrapperType in interface ValueDatatype
    • isParsable

      public boolean isParsable(String value)
      Not supported yet. Always returns false.
      Specified by:
      isParsable in interface ValueDatatype
    • getValue

      public Object getValue(String value)
      Not supported yet.
      Specified by:
      getValue in interface ValueDatatype
      Parameters:
      value - the string representation of a value
      Returns:
      the value as instance of the class this datatype represents
      Throws:
      UnsupportedOperationException - always
      See Also:
    • matchDatatype

      public boolean matchDatatype(Datatype datatype)
      Description copied from class: AbstractDatatype
      Returns true if the dataType is instance of AnyDatatype otherwise it call AbstractDatatype.equals(Object).
      Overrides:
      matchDatatype in class AbstractDatatype
    • isNull

      public boolean isNull(String value)
      Description copied from interface: ValueDatatype
      Returns true if the given string is null or the representation of the null object (if the datatype value class makes use of the null object pattern.) Returns false otherwise.
      Specified by:
      isNull in interface ValueDatatype
      See Also:
      • NullObject
    • supportsCompare

      public boolean supportsCompare()
      Specified by:
      supportsCompare in interface ValueDatatype
      Returns:
      true if this datatype is able to compare two values.
    • compare

      public int compare(String valueA, String valueB)
      Description copied from interface: ValueDatatype
      Compares the values created from the two given strings.
      Specified by:
      compare in interface ValueDatatype
      Parameters:
      valueA - The value to compare to valueB
      valueB - The value to compare to valueA
      Returns:
      A value less than 0 if valueA is less than valueB, 0 if valueA is equal to valueB and a value greater than 0 if valueA is greater than valueB.
      See Also:
    • areValuesEqual

      public boolean areValuesEqual(String valueA, String valueB)
      Description copied from interface: ValueDatatype
      Returns true if both given strings represent the same value defined by this datatype. The String " 1" (a blank followed by the char '1') and "1" (just the char '1') are equal if the datatype is an Integer, but will not be equal if the datatype is a String.
      Specified by:
      areValuesEqual in interface ValueDatatype
      Parameters:
      valueA - The first parameter to compare
      valueB - The second parameter to compare
      Returns:
      true if the two values are equal according to the datatype, returns false if they are different.