package org.objectstyle.wolips.eomodeler.core.model.qualifier;
import org.objectstyle.wolips.eomodeler.core.model.AbstractEOAttributePath;
import org.objectstyle.wolips.eomodeler.core.model.EOEntity;
import org.objectstyle.wolips.eomodeler.core.model.ISortableEOModelObject;
/**
* EOQualifierBindings represents the binding of a $qualifierVariable to a
* particular keypath of an entity.
*
* @author mschrag
*/
public class EOQualifierBinding implements ISortableEOModelObject {
private EOEntity _entity;
private String _name;
private String _keyPath;
public EOQualifierBinding(EOEntity entity, String name, String keyPath) {
_entity = entity;
_name = name;
_keyPath = keyPath;
}
public EOEntity getEntity() {
return _entity;
}
public String getName() {
return _name;
}
public void setName(String name) {
_name = name;
}
public String getKeyPath() {
return _keyPath;
}
public AbstractEOAttributePath getAttributePath() {
return _entity.resolveKeyPath(_keyPath);
}
public String getJavaClassName() {
AbstractEOAttributePath attributePath = getAttributePath();
if (attributePath == null) {
throw new IllegalStateException("The binding name '" + _name + "' refers to a keypath '" + _keyPath + " that could not be resolved on the entity '" + _entity.getName() + "'.");
}
return attributePath.getChildClassName();
}
public String toString() {
return "[EOQualifierBinding: " + _keyPath + " = $" + _name + "]";
}
}