package context.arch.discoverer.component;
import context.arch.comm.DataObject;
import context.arch.discoverer.query.comparison.AbstractComparison;
import context.arch.discoverer.query.comparison.AttributeComparison;
import context.arch.storage.AttributeNameValue;
/**
*
*
* @author newbergr
* @author Brian Y. Lim
*/
@SuppressWarnings("unchecked")
public abstract class AttributeElement extends AbstractCollectionElement<AttributeNameValue<?>,AttributeNameValue<?>> {
// some hack to bet a class of AttributeNameValue<?> with the <?>
public static Class<AttributeNameValue<?>> attributeClass = (Class<AttributeNameValue<?>>) AttributeNameValue.instance("class", String.class).getClass();
public AttributeElement(String elementName) {
super(elementName,
attributeClass, attributeClass);
}
public AttributeElement(String elementName, AttributeNameValue<?> attribute) {
super(elementName,
attributeClass, attributeClass,
attribute);
}
@Override
public AbstractComparison<AttributeNameValue<?>,AttributeNameValue<?>> getDefaultComparison() {
return new AttributeComparison(AttributeComparison.Comparison.EQUAL);
}
/**
* Overridden to use toValueCodex() of AttributeNameValue.
*/
@Override
public String getValueCodex() {
new RuntimeException("" + getValue()).printStackTrace();
return getValue().toValueCodex();
}
@Override
public DataObject getValueDataObject() {
return getValue().toDataObject();
}
}