class QueryPropertyMarker extends ASTReference {

    public static JexlNode getQueryPropertySource(JexlNode node, Class<? extends QueryPropertyMarker> type) {
        List<JexlNode> sourceNodes = new ArrayList<>();
        if (QueryPropertyMarkerVisitor.instanceOf(node, type, sourceNodes) && !sourceNodes.isEmpty()) {
            if (sourceNodes.size() == 1)
                return sourceNodes.get(0);
            else
                return JexlNodeFactory.createUnwrappedAndNode(sourceNodes);
        }
        
        return null;
    }

    public  QueryPropertyMarker();
    public  QueryPropertyMarker(int id);
    public  QueryPropertyMarker(Parser p, int id);
    public  QueryPropertyMarker(JexlNode source);

}