/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html */ package org.hibernate.orm.type.descriptor.java.internal; import java.util.Comparator; import org.hibernate.orm.type.descriptor.java.spi.JavaTypeDescriptor; import org.hibernate.orm.type.descriptor.java.spi.MutabilityPlan; import org.jboss.logging.Logger; /** * @author Steve Ebersole */ public abstract class AbstractJavaDescriptor<T> implements JavaTypeDescriptor<T> { private static final Logger log = Logger.getLogger( AbstractJavaDescriptor.class ); private final String typeName; private final MutabilityPlan mutabilityPlan; private final Comparator comparator; private Class javaType; public AbstractJavaDescriptor( String typeName, Class javaType, MutabilityPlan mutabilityPlan, Comparator comparator) { this.typeName = typeName; this.javaType = javaType; this.mutabilityPlan = mutabilityPlan; this.comparator = comparator; } protected void setJavaType(Class javaType) { log.debugf( "setting javaType to [" + javaType.getName() + "], was [" + this.javaType + "]" ); this.javaType = javaType; } @Override @SuppressWarnings("unchecked") public Class<T> getJavaType() { return javaType; } @Override public String getTypeName() { return typeName; } @Override @SuppressWarnings("unchecked") public MutabilityPlan<T> getMutabilityPlan() { return mutabilityPlan; } @Override @SuppressWarnings("unchecked") public Comparator<T> getComparator() { return comparator; } }