// Path: olastic-core/src/main/java/com/hevelian/olastic/core/api/uri/queryoption/expression/member/ExpressionMember.java
// public interface ExpressionMember extends LogicalExpression, LambdaExpression, MethodExpression {
// 
// }


import java.util.List;
import org.apache.olingo.server.api.ODataApplicationException;
import com.hevelian.olastic.core.api.uri.queryoption.expression.member.ExpressionMember;

package com.hevelian.olastic.core.api.uri.queryoption.expression.member.impl;




/**
 * Wraps the data needed for building parent query.
 *
 * @author Taras Kohut
 */
public class ParentPrimitiveMember extends ParentMember {

    private PrimitiveMember primitiveMember;

    /**
     * Initialize fields.
     * 
     * @param parentTypes
     *            list of parent type names
     * @param primitiveMember
     *            primitive member instance
     */
    public ParentPrimitiveMember(List<String> parentTypes, PrimitiveMember primitiveMember) {
        super(parentTypes);
        this.primitiveMember = primitiveMember;
    }

    @Override
    public ExpressionResult eq(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.eq(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override
    public ExpressionResult ne(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.ne(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override
    public ExpressionResult ge(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.ge(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override
    public ExpressionResult gt(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.gt(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override

// Path: olastic-core/src/main/java/com/hevelian/olastic/core/api/uri/queryoption/expression/member/ExpressionMember.java
// public interface ExpressionMember extends LogicalExpression, LambdaExpression, MethodExpression {
// 
// }


// Path: olastic-core/src/main/java/com/hevelian/olastic/core/api/uri/queryoption/expression/member/impl/ParentPrimitiveMember.java
import java.util.List;
import org.apache.olingo.server.api.ODataApplicationException;
import com.hevelian.olastic.core.api.uri.queryoption.expression.member.ExpressionMember;

package com.hevelian.olastic.core.api.uri.queryoption.expression.member.impl;




/**
 * Wraps the data needed for building parent query.
 *
 * @author Taras Kohut
 */
public class ParentPrimitiveMember extends ParentMember {

    private PrimitiveMember primitiveMember;

    /**
     * Initialize fields.
     * 
     * @param parentTypes
     *            list of parent type names
     * @param primitiveMember
     *            primitive member instance
     */
    public ParentPrimitiveMember(List<String> parentTypes, PrimitiveMember primitiveMember) {
        super(parentTypes);
        this.primitiveMember = primitiveMember;
    }

    @Override
    public ExpressionResult eq(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.eq(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override
    public ExpressionResult ne(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.ne(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override
    public ExpressionResult ge(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.ge(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override
    public ExpressionResult gt(ExpressionMember expressionMember) throws ODataApplicationException {
        ExpressionResult expressionResult = primitiveMember.gt(expressionMember);
        return buildParentQuery(expressionResult.getQueryBuilder());
    }

    @Override

    public ExpressionResult le(ExpressionMember expressionMember) throws ODataApplicationException {
