Class ValueClassNameDatatype

java.lang.Object
org.faktorips.datatype.AbstractDatatype
org.faktorips.datatype.ValueClassNameDatatype
All Implemented Interfaces:
Comparable<Datatype>, Datatype, ValueDatatype
Direct Known Subclasses:
BigDecimalDatatype, BooleanDatatype, CurrencyDatatype, DateDatatype, DecimalDatatype, DoubleDatatype, GregorianCalendarDatatype, IntegerDatatype, LocalDateDatatype, LocalDateTimeDatatype, LocalTimeDatatype, LongDatatype, MoneyDatatype, MonthDayDatatype, StringDatatype, ValueClassDatatype

public abstract class ValueClassNameDatatype extends AbstractDatatype implements ValueDatatype
A datatype that represents a Java class representing a value, for example java.lang.String. The class name is held as a String.
Author:
Jan Ortmann
  • Constructor Details

    • ValueClassNameDatatype

      public ValueClassNameDatatype(String name)
  • Method Details

    • 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
    • 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
    • isImmutable

      public final 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
    • 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
    • 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:
    • 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
    • valueToString

      public String valueToString(Object value)
      Returns the string representation of the given value. The String value returned by this method must be parsable by the getValue(String) method.
      Specified by:
      valueToString in interface ValueDatatype
      Parameters:
      value - a value of this datatype
      Returns:
      the value's string representation
      See Also:
    • isNull

      public boolean isNull(String valueString)
      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
    • isParsable

      public boolean isParsable(String value)
      Description copied from interface: ValueDatatype
      Returns true if the given string can be parsed to a value of this datatype. Returns false otherwise.
      Specified by:
      isParsable in interface ValueDatatype
    • hasNullObject

      public boolean hasNullObject()
      Description copied from interface: Datatype
      Returns true if the datatype has a special instance representing null, otherwise false. The design pattern is called the null-object pattern.
      Specified by:
      hasNullObject in interface Datatype
      Overrides:
      hasNullObject in class AbstractDatatype
      See Also:
      • NullObject
    • 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.
    • 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:
    • getValue

      public abstract Object getValue(String value)
      This method parses the given string and returns the value as an instance of the class this value datatype represents. Use with caution: During development time Faktor-IPS maintains all values with their string representation. This allows to change the value's datatype without the need to convert the value from one class to another (e.g. if the string representation is 42 you can change the datatype from integer to string without converting the integer object to a string object.
      Specified by:
      getValue in interface ValueDatatype
      Parameters:
      value - string representation of the value
      Returns:
      The value as instance of the class this datatype represents.
      See Also: