/* * 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.test.bytecode.enhancement.basic; import java.util.Set; import org.hibernate.engine.spi.PersistentAttributeInterceptor; /** * Interceptor that stores a marker object on write, instead of the provided value. * Also returns another marker object on read. Marks only non-primitive fields. * * @author Luis Barreiro */ public class ObjectAttributeMarkerInterceptor implements PersistentAttributeInterceptor { public static final Object READ_MARKER = new Object(); public static final Object WRITE_MARKER = new Object(); public ObjectAttributeMarkerInterceptor() { } @Override public boolean readBoolean(Object obj, String name, boolean oldValue) { return oldValue; } @Override public boolean writeBoolean(Object obj, String name, boolean oldValue, boolean newValue) { return newValue; } @Override public byte readByte(Object obj, String name, byte oldValue) { return oldValue; } @Override public byte writeByte(Object obj, String name, byte oldValue, byte newValue) { return newValue; } @Override public char readChar(Object obj, String name, char oldValue) { return oldValue; } @Override public char writeChar(Object obj, String name, char oldValue, char newValue) { return newValue; } @Override public short readShort(Object obj, String name, short oldValue) { return oldValue; } @Override public short writeShort(Object obj, String name, short oldValue, short newValue) { return newValue; } @Override public int readInt(Object obj, String name, int oldValue) { return oldValue; } @Override public int writeInt(Object obj, String name, int oldValue, int newValue) { return newValue; } @Override public float readFloat(Object obj, String name, float oldValue) { return oldValue; } @Override public float writeFloat(Object obj, String name, float oldValue, float newValue) { return newValue; } @Override public double readDouble(Object obj, String name, double oldValue) { return oldValue; } @Override public double writeDouble(Object obj, String name, double oldValue, double newValue) { return newValue; } @Override public long readLong(Object obj, String name, long oldValue) { return oldValue; } @Override public long writeLong(Object obj, String name, long oldValue, long newValue) { return newValue; } @Override public Object readObject(Object obj, String name, Object oldValue) { return READ_MARKER; } @Override public Object writeObject(Object obj, String name, Object oldValue, Object newValue) { return WRITE_MARKER; } @Override public Set<String> getInitializedLazyAttributeNames() { return null; } @Override public void attributeInitialized(String name) { } }