package net.sourceforge.fenixedu.applicationTier.Servico.renderers; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.Arrays; import com.linkare.commons.metainfo.Linkare; public class ObjectChange { public final ObjectKey key; public final String slot; public final Object value; public final Method setter; public final Constructor constructor; public final Object[] values; public ObjectChange(ObjectKey key, String slot, Object value) { this.key = key; this.slot = slot; this.value = value; this.setter = null; this.constructor = null; this.values = null; } @Linkare(author = "Paulo Zenida", comments = "Implemented defensive copy to prevent the violation of a best practice") public ObjectChange(ObjectKey key, Method setter, Object[] values) { this.key = key; this.setter = setter; this.values = values == null ? null : Arrays.copyOf(values, values.length); this.slot = null; this.constructor = null; this.value = null; } @Linkare(author = "Paulo Zenida", comments = "Implemented defensive copy to prevent the violation of a best practice") public ObjectChange(ObjectKey key, Constructor constructor, Object[] values) { this.key = key; this.constructor = constructor; this.values = values == null ? null : Arrays.copyOf(values, values.length); this.slot = null; this.setter = null; this.value = null; } }