package org.drools.semantics.util.editor; import java.lang.reflect.Method; public class RelationDescriptor implements Cloneable { public static enum RELTYPE { OBJECT, DATA }; private String property; private Object subject; private Object object; private RELTYPE type; private Class range; private Method setter; private Method getter; private Method adder; private Method remover; public RelationDescriptor() { } public String getProperty() { return property; } public void setProperty(String property) { this.property = property; } public Object getSubject() { return subject; } public void setSubject(Object subject) { this.subject = subject; } public Object getObject() { return object; } public void setObject(Object object) { this.object = object; } public RELTYPE getType() { return type; } public void setType(RELTYPE type) { this.type = type; } public Class getRange() { return range; } public void setRange(Class range) { this.range = range; } public Method getSetter() { return setter; } public void setSetter(Method setter) { this.setter = setter; } public Method getGetter() { return getter; } public void setGetter(Method getter) { this.getter = getter; } public Method getAdder() { return adder; } public void setAdder(Method adder) { this.adder = adder; } public Method getRemover() { return remover; } public void setRemover(Method remover) { this.remover = remover; } public String toString() { return property + "(" + object + ")"; } public String toFullString() { return "RelationDescriptor{" + "property='" + property + '\'' + ", subject=" + subject + ", object=" + object + ", type=" + type + ", range=" + range + ", setter=" + setter + ", getter=" + getter + ", adder=" + adder + ", remover=" + remover + '}'; } public Object clone() { RelationDescriptor other = new RelationDescriptor(); other.setProperty( getProperty() ); other.setRange( getRange() ); other.setType( getType() ); other.setAdder( getAdder() ); other.setGetter( getGetter() ); other.setRemover( getRemover() ); other.setSetter( getSetter() ); return other; } }