package org.sculptor.framework.domain;
public class LeafProperty<Q> implements Property<Q> {
private static final long serialVersionUID = 1L;
private final String name;
private Class<Q> owningClass;
public LeafProperty(String name, Class<Q> owningClass) {
this.name = name;
this.owningClass = owningClass;
}
public LeafProperty(String parentPath, String name, boolean isEmbedded, Class<Q> owningClass) {
this.name = (parentPath == null ? name : (parentPath + (isEmbedded ? "#" : ".") + name));
this.owningClass = owningClass;
}
public String getName() {
return name.replaceAll("#", ".");
}
public String getEmbeddedName() {
return name;
}
@Override
public String toString() {
return getName();
}
@Override
public int hashCode() {
return owningClass.hashCode() + name.hashCode();
}
@Override
public boolean equals(Object other) {
if (other == null || ! (other instanceof LeafProperty<?>)) {
return false;
}
String thisString=this.owningClass.getCanonicalName() + name;
String otherString=((LeafProperty<?>) other).owningClass.getCanonicalName() + ((LeafProperty<?>)other).name;
return thisString.equals(otherString);
}
}