Package org.optaplanner.persistence.jpa.impl.score

## Class AbstractScoreHibernateType

- java.lang.Object
- - org.optaplanner.persistence.jpa.impl.score.AbstractScoreHibernateType

- All Implemented Interfaces:
    `org.hibernate.usertype.CompositeUserType`
  Direct Known Subclasses:
    `BendableBigDecimalScoreHibernateType`, `BendableLongScoreHibernateType`, `BendableScoreHibernateType`, `HardMediumSoftBigDecimalScoreHibernateType`, `HardMediumSoftLongScoreHibernateType`, `HardMediumSoftScoreHibernateType`, `HardSoftBigDecimalScoreHibernateType`, `HardSoftLongScoreHibernateType`, `HardSoftScoreHibernateType`, `SimpleBigDecimalScoreHibernateType`, `SimpleLongScoreHibernateType`, `SimpleScoreHibernateType`

      public abstract class AbstractScoreHibernateType
      extends Object
      implements org.hibernate.usertype.CompositeUserType

  This class is Hibernate specific, because JPA 2.1's @Converter currently cannot handle 1 class mapping to multiple SQL columns.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ScoreDefinition` | `scoreDefinition` |
    `protected org.hibernate.type.AbstractSingleColumnStandardBasicType` | `type` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractScoreHibernateType()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `assemble​(Serializable cached, org.hibernate.engine.spi.SharedSessionContractImplementor session, Object owner)` |
    `Object` | `deepCopy​(Object value)` |
    `Serializable` | `disassemble​(Object value, org.hibernate.engine.spi.SharedSessionContractImplementor session)` |
    `boolean` | `equals​(Object a, Object b)` |
    `protected int` | `extractIntParameter​(Properties parameterMap, String parameterName)` |
    `String[]` | `getPropertyNames()` |
    `org.hibernate.type.Type[]` | `getPropertyTypes()` |
    `Object` | `getPropertyValue​(Object o, int propertyIndex)` |
    `int` | `hashCode​(Object o)` |
    `boolean` | `isMutable()` |
    `Score` | `nullSafeGet​(ResultSet resultSet, String[] names, org.hibernate.engine.spi.SharedSessionContractImplementor session, Object owner)` |
    `void` | `nullSafeSet​(PreparedStatement statement, Object value, int parameterIndex, org.hibernate.engine.spi.SharedSessionContractImplementor session)` |
    `Object` | `replace​(Object original, Object target, org.hibernate.engine.spi.SharedSessionContractImplementor session, Object owner)` |
    `Class` | `returnedClass()` |
    `void` | `setPropertyValue​(Object component, int property, Object value)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### scoreDefinition

          protected ScoreDefinition scoreDefinition

    - #### type

          protected org.hibernate.type.AbstractSingleColumnStandardBasicType type

  - ### Constructor Detail

    - #### AbstractScoreHibernateType

          public AbstractScoreHibernateType()

  - ### Method Detail

    - #### extractIntParameter

          protected int extractIntParameter​(Properties parameterMap,
                                            String parameterName)

    - #### returnedClass

          public Class returnedClass()

      Specified by:
        `returnedClass` in interface `org.hibernate.usertype.CompositeUserType`

    - #### getPropertyNames

          public String[] getPropertyNames()

      Specified by:
        `getPropertyNames` in interface `org.hibernate.usertype.CompositeUserType`

    - #### getPropertyTypes

          public org.hibernate.type.Type[] getPropertyTypes()

      Specified by:
        `getPropertyTypes` in interface `org.hibernate.usertype.CompositeUserType`

    - #### getPropertyValue

          public Object getPropertyValue​(Object o,
                                         int propertyIndex)

      Specified by:
        `getPropertyValue` in interface `org.hibernate.usertype.CompositeUserType`

    - #### nullSafeGet

          public Score nullSafeGet​(ResultSet resultSet,
                                   String[] names,
                                   org.hibernate.engine.spi.SharedSessionContractImplementor session,
                                   Object owner)
                            throws SQLException

      Specified by:
        `nullSafeGet` in interface `org.hibernate.usertype.CompositeUserType`
      Throws:
        `SQLException`

    - #### nullSafeSet

          public void nullSafeSet​(PreparedStatement statement,
                                  Object value,
                                  int parameterIndex,
                                  org.hibernate.engine.spi.SharedSessionContractImplementor session)
                           throws SQLException

      Specified by:
        `nullSafeSet` in interface `org.hibernate.usertype.CompositeUserType`
      Throws:
        `SQLException`

    - #### isMutable

          public boolean isMutable()

      Specified by:
        `isMutable` in interface `org.hibernate.usertype.CompositeUserType`

    - #### deepCopy

          public Object deepCopy​(Object value)

      Specified by:
        `deepCopy` in interface `org.hibernate.usertype.CompositeUserType`

    - #### replace

          public Object replace​(Object original,
                                Object target,
                                org.hibernate.engine.spi.SharedSessionContractImplementor session,
                                Object owner)

      Specified by:
        `replace` in interface `org.hibernate.usertype.CompositeUserType`

    - #### setPropertyValue

          public void setPropertyValue​(Object component,
                                       int property,
                                       Object value)

      Specified by:
        `setPropertyValue` in interface `org.hibernate.usertype.CompositeUserType`

    - #### equals

          public boolean equals​(Object a,
                                Object b)

      Specified by:
        `equals` in interface `org.hibernate.usertype.CompositeUserType`

    - #### hashCode

          public int hashCode​(Object o)

      Specified by:
        `hashCode` in interface `org.hibernate.usertype.CompositeUserType`

    - #### disassemble

          public Serializable disassemble​(Object value,
                                          org.hibernate.engine.spi.SharedSessionContractImplementor session)

      Specified by:
        `disassemble` in interface `org.hibernate.usertype.CompositeUserType`

    - #### assemble

          public Object assemble​(Serializable cached,
                                 org.hibernate.engine.spi.SharedSessionContractImplementor session,
                                 Object owner)

      Specified by:
        `assemble` in interface `org.hibernate.usertype.CompositeUserType`