Package org.apache.chemistry.opencmis.server.support.query

Examples of org.apache.chemistry.opencmis.server.support.query.ColumnReference


    private Integer compareTo(StoredObject so, Tree leftChild, Tree rightChild) {
        Object rVal = onLiteral(rightChild);
       
        //log.debug("retrieve node from where: " + System.identityHashCode(leftChild) + " is " + leftChild);
        ColumnReference colRef = getColumnReference(leftChild);
        TypeDefinition td = colRef.getTypeDefinition();
        PropertyDefinition<?> pd = td.getPropertyDefinitions().get(colRef.getPropertyId());
        PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
        if (lVal instanceof List<?>)
            throw new RuntimeException("You can't query operators <, <=, ==, !=, >=, > on multi-value properties ");
        else
            return compareTo(pd, lVal, rVal);
    }
View Full Code Here


            throw new RuntimeException("Inavlid type in IN_FOLDER() or IN_TREE(), must be in FROM list: " + tableNode.getText());
        return typeQueryName;
    }

    private Object getPropertyValue(Tree columnNode, StoredObject so) {
        ColumnReference colRef = getColumnReference(columnNode);
        TypeDefinition td = colRef.getTypeDefinition();
        PropertyDefinition<?> pd = td.getPropertyDefinitions().get(colRef.getPropertyId());
        PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
        if (null == lVal)
            return null;
        else {
            if (pd.getCardinality() == Cardinality.SINGLE)
                return null == lVal ? null : lVal.getFirstValue();
View Full Code Here

        boolean matches2 = evalWhereNode(so, rightChild);       
        return matches1 || matches2;
    }

    private boolean evalWhereIn(StoredObject so, Tree node, Tree colNode, Tree listNode) {
        ColumnReference colRef = getColumnReference(colNode);
        TypeDefinition td = colRef.getTypeDefinition();
        PropertyDefinition<?> pd = td.getPropertyDefinitions().get(colRef.getPropertyId());
        PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
        List<Object> literals = onLiteralList(listNode);
        if (pd.getCardinality() != Cardinality.SINGLE)
            throw new RuntimeException("Operator IN only is allowed on single-value properties ");
        else if (lVal == null)
            return false;
View Full Code Here

    }

    private boolean evalWhereNotIn(StoredObject so, Tree node, Tree colNode, Tree listNode) {
        // Note just return !evalWhereIn(so, node, colNode, listNode) is wrong, because
        // then it evaluates to true for null values (not set properties).
        ColumnReference colRef = getColumnReference(colNode);
        TypeDefinition td = colRef.getTypeDefinition();
        PropertyDefinition<?> pd = td.getPropertyDefinitions().get(colRef.getPropertyId());
        PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
        List<Object> literals = onLiteralList(listNode);
        if (pd.getCardinality() != Cardinality.SINGLE)
            throw new RuntimeException("Operator IN only is allowed on single-value properties ");
        else if (lVal == null)
            return false;
View Full Code Here

        }
        return typeQueryName;
    }

    private Object getPropertyValue(Tree columnNode, StoredObject so) {
        ColumnReference colRef = getColumnReference(columnNode);
        PropertyDefinition<?> pd = colRef.getPropertyDefinition();
        PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
        if (null == lVal) {
            return null;
        } else {
            if (pd.getCardinality() == Cardinality.SINGLE) {
                return lVal.getFirstValue();
View Full Code Here

            return cmp == null ? false : cmp <= 0;
        }

        @Override
        public Boolean walkIn(Tree opNode, Tree colNode, Tree listNode) {
            ColumnReference colRef = getColumnReference(colNode);
            PropertyDefinition<?> pd = colRef.getPropertyDefinition();
            PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
            List<Object> literals = onLiteralList(listNode);
            if (pd.getCardinality() != Cardinality.SINGLE) {
                throw new IllegalStateException("Operator IN only is allowed on single-value properties ");
            } else if (lVal == null) {
                return false;
View Full Code Here

        @Override
        public Boolean walkNotIn(Tree opNode, Tree colNode, Tree listNode) {
            // Note just return !walkIn(node, colNode, listNode) is wrong,
            // because
            // then it evaluates to true for null values (not set properties).
            ColumnReference colRef = getColumnReference(colNode);
            PropertyDefinition<?> pd = colRef.getPropertyDefinition();
            PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
            List<Object> literals = onLiteralList(listNode);
            if (pd.getCardinality() != Cardinality.SINGLE) {
                throw new IllegalStateException("Operator IN only is allowed on single-value properties ");
            } else if (lVal == null) {
                return false;
View Full Code Here

            }
        }

        @Override
        public Boolean walkInAny(Tree opNode, Tree colNode, Tree listNode) {
            ColumnReference colRef = getColumnReference(colNode);
            PropertyDefinition<?> pd = colRef.getPropertyDefinition();
            PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
            List<Object> literals = onLiteralList(listNode);
            if (pd.getCardinality() != Cardinality.MULTI) {
                throw new IllegalStateException("Operator ANY...IN only is allowed on multi-value properties ");
            } else if (lVal == null) {
                return false;
View Full Code Here

        @Override
        public Boolean walkNotInAny(Tree opNode, Tree colNode, Tree listNode) {
            // Note just return !walkNotInAny(node, colNode, listNode) is
            // wrong, because
            // then it evaluates to true for null values (not set properties).
            ColumnReference colRef = getColumnReference(colNode);
            PropertyDefinition<?> pd = colRef.getPropertyDefinition();
            PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
            List<Object> literals = onLiteralList(listNode);
            if (pd.getCardinality() != Cardinality.MULTI) {
                throw new IllegalStateException("Operator ANY...IN only is allowed on multi-value properties ");
            } else if (lVal == null) {
                return false;
View Full Code Here

            }
        }

        @Override
        public Boolean walkEqAny(Tree opNode, Tree literalNode, Tree colNode) {
            ColumnReference colRef = getColumnReference(colNode);
            PropertyDefinition<?> pd = colRef.getPropertyDefinition();
            PropertyData<?> lVal = so.getProperties().get(colRef.getPropertyId());
            Object literal = walkExpr(literalNode);
            if (pd.getCardinality() != Cardinality.MULTI) {
                throw new IllegalStateException("Operator = ANY only is allowed on multi-value properties ");
            } else if (lVal == null) {
                return false;
View Full Code Here

TOP

Related Classes of org.apache.chemistry.opencmis.server.support.query.ColumnReference

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.