public Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp) throws ExpressionException {
// resolve DB_PATH if we can
if (pathExp.getType() == Expression.DB_PATH) {
if (getDbEntity() == null) {
throw new ExpressionException("Can't resolve DB_PATH '"
+ pathExp
+ "', DbEntity is not set.");
}
return getDbEntity().resolvePathComponents(pathExp);
}
if (pathExp.getType() == Expression.OBJ_PATH) {
return new PathIterator((String) pathExp.getOperand(0));
}
throw new ExpressionException("Invalid expression type: '"
+ pathExp.expName()
+ "', OBJ_PATH is expected.");
}