/** Creates an expr, handling some special cases. */ public static Expr create(AbstractPattern pattern) { if (pattern instanceof NodeTypePattern && pattern.getParent() instanceof FromSelf && pattern.toString().equals(".")) return new ObjectExpr(SELF, "."); else if (pattern instanceof FromContext && ((FromContext) pattern).getCount() == 0 && pattern.getParent() == null) return new ObjectExpr(SELF, "."); else if (pattern instanceof NodePattern && pattern.getParent() instanceof FromAttributes && pattern.getParent().getParent() instanceof FromContext && ((FromContext) pattern.getParent().getParent()).getCount() == 0) return new ObjectExpr(ATTRIBUTE, ((NodePattern) pattern).getNodeName()); else return new NodeSetExpr(pattern); }
public String toString() { return _pattern.toString(); }