private FromElement evaluateFromElementPath(String path, String classAlias)
     throws SemanticException {
   ASTFactory factory = fromClause.getASTFactory();
   FromReferenceNode pathNode = (FromReferenceNode) PathHelper.parsePath(path, factory);
   pathNode.recursiveResolve(
       FromReferenceNode.ROOT_LEVEL, // This is the root level node.
       false, // Generate an explicit from clause at the root.
       classAlias,
       null);
   if (pathNode.getImpliedJoin() != null) {
     return pathNode.getImpliedJoin();
   } else {
     return pathNode.getFromElement();
   }
 }