org.hibernate.type.descriptor.java.ImmutableMutabilityPlan Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core-jakarta Show documentation
Show all versions of hibernate-core-jakarta Show documentation
Hibernate O/RM implementation of the Jakarta Persistence specification
The newest version!
/*
* 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 .
*/
package org.hibernate.type.descriptor.java;
import java.io.Serializable;
import org.hibernate.SharedSessionContract;
/**
* Mutability plan for immutable objects
*
* @author Steve Ebersole
*/
public class ImmutableMutabilityPlan implements MutabilityPlan {
public static final ImmutableMutabilityPlan INSTANCE = new ImmutableMutabilityPlan();
public static ImmutableMutabilityPlan instance() {
//noinspection unchecked
return INSTANCE;
}
@Override
public boolean isMutable() {
return false;
}
@Override
public T deepCopy(T value) {
return value;
}
@Override
public Serializable disassemble(T value, SharedSessionContract session) {
return (Serializable) value;
}
@Override
@SuppressWarnings({ "unchecked" })
public T assemble(Serializable cached, SharedSessionContract session) {
return (T) cached;
}
}