package com.breeze.query;
import com.breeze.metadata.DataType;
import com.breeze.metadata.IDataProperty;
import com.breeze.metadata.IEntityType;
import com.breeze.metadata.IProperty;
import com.breeze.metadata.MetadataHelper;
public class PropExpression extends Expression {
private String _propertyPath;
private IProperty _property;
private IEntityType _entityType;
public PropExpression(String propertyPath, IEntityType entityType) {
_entityType = entityType;
_propertyPath = propertyPath;
_property = MetadataHelper.getPropertyFromPath(_propertyPath, entityType);
if (_property == null) {
throw new RuntimeException("Unable to validate propertyPath: " + _propertyPath + " on EntityType: " + entityType.getName());
}
}
public IEntityType getEntityType() {
return _entityType;
}
public String getPropertyPath() {
return _propertyPath;
}
public IProperty getProperty() {
return _property;
}
@Override
public DataType getDataType() {
if (!(_property instanceof IDataProperty )) {
throw new RuntimeException("This property expression returns a NavigationProperty not a DataProperty");
}
return ((IDataProperty) _property).getDataType();
}
}