Example usage for org.hibernate.criterion Restrictions conjunction

List of usage examples for org.hibernate.criterion Restrictions conjunction

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions conjunction.

Prototype

public static Conjunction conjunction() 

Source Link

Document

Group expressions together in a single conjunction (A and B and C...).

Usage

From source file:gov.nih.nci.caintegrator.data.CopyNumberAlterationCriterionConverter.java

License:BSD License

private void addSegmentValueCriterion(Criteria segmentDataCrit) {
    // First case, if both are null.
    if (copyNumberCriterion.getUpperLimit() == null && copyNumberCriterion.getLowerLimit() == null) {
        return;/*from   www  .j  a  v a2s.  c  o  m*/
    }
    SimpleExpression upperLimitExpression = Restrictions.le("segmentValue",
            copyNumberCriterion.getUpperLimit());
    SimpleExpression lowerLimitExpression = Restrictions.ge("segmentValue",
            copyNumberCriterion.getLowerLimit());
    // Second case, upper limit is higher than lower limit, value is in between the two
    if (copyNumberCriterion.isInsideBoundaryType()) {
        segmentDataCrit.add(Restrictions.conjunction().add(upperLimitExpression).add(lowerLimitExpression));
        return;
    }
    // Third case, lower limit is higher than upper limit, value is outside of the limits
    if (copyNumberCriterion.isOutsideBoundaryType()) {
        segmentDataCrit.add(Restrictions.disjunction().add(upperLimitExpression).add(lowerLimitExpression));
        return;
    }
    // Fourth case, upper limit has a value, lower limit is null.
    if (copyNumberCriterion.getUpperLimit() != null) {
        segmentDataCrit.add(upperLimitExpression);
        return;
    }
    // Fifth case, lower limit has a value, upper limit is null.
    if (copyNumberCriterion.getLowerLimit() != null) {
        segmentDataCrit.add(lowerLimitExpression);
    }
}

From source file:gov.nih.nci.caintegrator.data.CopyNumberAlterationCriterionConverter.java

License:BSD License

private void addChromosomeCoordinatesToCriterion(Integer chromosomeCoordinateHigh,
        Integer chromosomeCoordinateLow, Criteria segmentDataCrit, String chromosomeNumber) {
    if (chromosomeCoordinateHigh == null || chromosomeCoordinateLow == null) {
        segmentDataCrit.add(chromosomeNumberExpression(chromosomeNumber));
        if (chromosomeCoordinateHigh != null) {
            segmentDataCrit.add(segmentEndLessThanHigh(chromosomeCoordinateHigh));
        }// w w  w . j av a2 s.  c om
        if (chromosomeCoordinateLow != null) {
            segmentDataCrit.add(segmentStartGreaterThanLow(chromosomeCoordinateLow));
        }
    } else {
        Junction overallOrStatement = Restrictions.disjunction();
        // (loc.startPos <= lowerInput && loc.endPos >= lowerInput && loc.chromosome == chromosomeInput)
        //  || (loc.startPos >= lowerInput  && loc.startPos <= higherInput && loc.chromosome == chromosomeInput)
        overallOrStatement.add(Restrictions.conjunction().add(segmentStartLessThanLow(chromosomeCoordinateLow))
                .add(segmentEndGreaterThanLow(chromosomeCoordinateLow))
                .add(chromosomeNumberExpression(chromosomeNumber)));
        overallOrStatement
                .add(Restrictions.conjunction().add(segmentStartGreaterThanLow(chromosomeCoordinateLow))
                        .add(segmentStartLessThanHigh(chromosomeCoordinateHigh))
                        .add(chromosomeNumberExpression(chromosomeNumber)));
        segmentDataCrit.add(overallOrStatement);
    }
}

From source file:gov.nih.nci.caintegrator.data.CopyNumberAlterationCriterionConverter.java

License:BSD License

private void addMultipleChromosomeCoordinatesToCriterion(Criteria segmentDataCrit,
        List<GeneChromosomalLocation> geneLocations) {
    Junction overallOrStatement = Restrictions.disjunction();
    // (loc.startPos <= lowerInput && loc.endPos >= lowerInput && loc.chromosome == chromosomeInput)
    //  || (loc.startPos >= lowerInput  && loc.startPos <= higherInput && loc.chromosome == chromosomeInput)
    for (GeneChromosomalLocation geneLocation : geneLocations) {
        Integer chromosomeCoordinateLow = geneLocation.getLocation().getStartPosition();
        Integer chromosomeCoordinateHigh = geneLocation.getLocation().getEndPosition();
        overallOrStatement.add(Restrictions.conjunction().add(segmentStartLessThanLow(chromosomeCoordinateLow))
                .add(segmentEndGreaterThanLow(chromosomeCoordinateLow)).add(chromosomeNumberExpression(
                        Cai2Util.getInternalChromosomeNumber(geneLocation.getLocation().getChromosome()))));
        overallOrStatement.add(Restrictions.conjunction()
                .add(segmentStartGreaterThanLow(chromosomeCoordinateLow))
                .add(segmentStartLessThanHigh(chromosomeCoordinateHigh)).add(chromosomeNumberExpression(
                        Cai2Util.getInternalChromosomeNumber(geneLocation.getLocation().getChromosome()))));
    }//from  ww w  .j  a va2 s. c o m
    segmentDataCrit.add(overallOrStatement);

}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

private Junction getDatumJunction(AdvancedSampleSearchBean searchBean) {
    // if AND and more than one type of datum, don't use junction
    if (searchBean.getCharacterizationLogicalOperator().equals("and") && searchBean.getDatumTypeCount() > 1) {
        return null;
    }/*from  w w w .  j  ava  2s  .  c o m*/
    Disjunction datumDisjunction = Restrictions.disjunction();
    Conjunction datumConjunction = Restrictions.conjunction();
    for (CharacterizationQueryBean charQuery : searchBean.getCharacterizationQueries()) {
        Criterion datumCrit = getDatumCriterion(charQuery);
        if (datumCrit != null) {
            datumDisjunction.add(datumCrit);
            if (searchBean.getDatumTypeCount() == 1) {
                datumConjunction.add(datumCrit);
            }
        }
    }
    // default to or if only one query
    Junction junction = (searchBean.getCharacterizationLogicalOperator().equals("or")
            || searchBean.getCharacterizationQueries().size() == 1) ? datumDisjunction : datumConjunction;
    return junction;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Get the junction used in composition queries
 * //ww  w .  jav  a2  s .c o  m
 * @param searchBean
 * @param crit
 * @return
 * @throws Exception
 */
private Junction getCompositionJunction(AdvancedSampleSearchBean searchBean, DetachedCriteria crit)
        throws Exception {
    // if AND and more than one query per type, don't use junction
    if (searchBean.getCompositionLogicalOperator().equals("and") && searchBean.getFuncCount() > 1
            && searchBean.getNanoEntityCount() > 1 && searchBean.getFuncEntityCount() > 1) {
        return null;
    }
    Disjunction compDisjunction = Restrictions.disjunction();
    Conjunction compConjunction = Restrictions.conjunction();
    for (CompositionQueryBean compQuery : searchBean.getCompositionQueries()) {
        // function
        if (compQuery.getCompositionType().equals("function")) {
            Criterion funcCrit = this.getFunctionCriterion(compQuery, "inherentFunction.", "function.");
            if (funcCrit != null) {
                compDisjunction.add(funcCrit);
                // only add to conjunction if there is only one query for
                // the type
                if (searchBean.getFuncCount() == 1) {
                    compConjunction.add(funcCrit);
                }
            }
        }
        // nanomaterial entity
        else if (compQuery.getCompositionType().equals("nanomaterial entity")) {
            Criterion nanoEntityCrit = getNanomaterialEntityCriterion(compQuery, "nanoEntity.");
            if (nanoEntityCrit != null) {
                compDisjunction.add(nanoEntityCrit);
                // only add to conjunction if there is only one query for
                // the type
                if (searchBean.getNanoEntityCount() == 1) {
                    compConjunction.add(nanoEntityCrit);
                }
            }
        }
        // functionalizing entity
        else if (compQuery.getCompositionType().equals("functionalizing entity")) {
            Criterion funcEntityCrit = getFunctionalizingEntityCriterion(compQuery, "funcEntity.");
            if (funcEntityCrit != null) {
                compDisjunction.add(funcEntityCrit);
                // only add to conjunction if there is only one query for
                // the type
                if (searchBean.getFuncEntityCount() == 1) {
                    compConjunction.add(funcEntityCrit);
                }
            }
        }
    }
    // default to or if only one query
    Junction junction = (searchBean.getCompositionLogicalOperator().equals("or")
            || searchBean.getCompositionQueries().size() == 1) ? compDisjunction : compConjunction;
    return junction;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Get the junction used in function queries
 * /*from   ww w . ja  v  a2s. c  om*/
 * @param searchBean
 * @param crit
 * @return
 * @throws Exception
 */
private Junction getFunctionJunction(AdvancedSampleSearchBean searchBean, DetachedCriteria crit)
        throws Exception {
    // if AND and more than one query per type, don't use junction
    if (searchBean.getCompositionLogicalOperator().equals("and") && searchBean.getFuncCount() > 1) {
        return null;
    }
    Disjunction compDisjunction = Restrictions.disjunction();
    Conjunction compConjunction = Restrictions.conjunction();
    for (CompositionQueryBean compQuery : searchBean.getCompositionQueries()) {
        // function
        if (compQuery.getCompositionType().equals("function")) {
            Criterion funcCrit = this.getFunctionCriterion(compQuery, "", "");
            if (funcCrit != null) {
                compDisjunction.add(funcCrit);
                // only add to conjunction if there is only one query for
                // the type
                if (searchBean.getFuncCount() == 1) {
                    compConjunction.add(funcCrit);
                }
            }
        }
    }
    // default to or if only one query
    Junction junction = (searchBean.getCompositionLogicalOperator().equals("or")
            || searchBean.getCompositionQueries().size() == 1) ? compDisjunction : compConjunction;
    return junction;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Get the junction used in nanomaterial entity queries
 * /* w  w  w .  java2  s .  c o m*/
 * @param searchBean
 * @param crit
 * @return
 * @throws Exception
 */
private Junction getNanomaterialEntityJunction(AdvancedSampleSearchBean searchBean, DetachedCriteria crit)
        throws Exception {
    // if AND and more than one query per type, don't use junction
    if (searchBean.getCompositionLogicalOperator().equals("and") && searchBean.getNanoEntityCount() > 1) {
        return null;
    }
    Disjunction compDisjunction = Restrictions.disjunction();
    Conjunction compConjunction = Restrictions.conjunction();
    for (CompositionQueryBean compQuery : searchBean.getCompositionQueries()) {
        // nanomaterial entity
        if (compQuery.getCompositionType().equals("nanomaterial entity")) {
            Criterion nanoEntityCrit = getNanomaterialEntityCriterion(compQuery, "");
            if (nanoEntityCrit != null) {
                compDisjunction.add(nanoEntityCrit);
                // only add to conjunction if there is only one query for
                // the type
                if (searchBean.getNanoEntityCount() == 1) {
                    compConjunction.add(nanoEntityCrit);
                }
            }
        }
    }
    // default to or if only one query
    Junction junction = (searchBean.getCompositionLogicalOperator().equals("or")
            || searchBean.getCompositionQueries().size() == 1) ? compDisjunction : compConjunction;
    return junction;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Get the junction used in functionalizing entity queries
 * /*from w w w.j av a2 s . c om*/
 * @param searchBean
 * @param crit
 * @return
 * @throws Exception
 */
private Junction getFunctionalizingEntityJunction(AdvancedSampleSearchBean searchBean, DetachedCriteria crit)
        throws Exception {
    // if AND and more than one query per type, don't use junction
    if (searchBean.getCompositionLogicalOperator().equals("and") && searchBean.getFuncEntityCount() > 1) {
        return null;
    }
    Disjunction compDisjunction = Restrictions.disjunction();
    Conjunction compConjunction = Restrictions.conjunction();
    for (CompositionQueryBean compQuery : searchBean.getCompositionQueries()) {
        // functionalizing entity
        if (compQuery.getCompositionType().equals("functionalizing entity")) {
            Criterion funcEntityCrit = getFunctionalizingEntityCriterion(compQuery, "");
            if (funcEntityCrit != null) {
                compDisjunction.add(funcEntityCrit);
                // only add to conjunction if there is only one query for
                // the type
                if (searchBean.getFuncEntityCount() == 1) {
                    compConjunction.add(funcEntityCrit);
                }
            }
        }
    }
    // default to or if only one query
    Junction junction = (searchBean.getCompositionLogicalOperator().equals("or")
            || searchBean.getCompositionQueries().size() == 1) ? compDisjunction : compConjunction;
    return junction;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Get the sample name junction used in sample queries
 * /*from  w w w .  j av a2  s.c o m*/
 *
 */
private Junction getSampleNameJunction(AdvancedSampleSearchBean searchBean) throws Exception {
    Disjunction sampleDisjunction = Restrictions.disjunction();
    Conjunction sampleConjunction = Restrictions.conjunction();
    for (SampleQueryBean query : searchBean.getSampleQueries()) {
        if (query.getNameType().equals("sample name")) {
            Criterion sampleNameCrit = getSampleNameCriterion(query);
            if (sampleNameCrit != null) {
                sampleDisjunction.add(sampleNameCrit);
                sampleConjunction.add(sampleNameCrit);
            }
        }
    }
    Junction junction = (searchBean.getSampleLogicalOperator().equals("or")
            || searchBean.getSampleQueries().size() == 1) ? sampleDisjunction : sampleConjunction;
    return junction;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Get the sample disjunction used in sample queries
 * /*from   w ww. jav  a 2s  . com*/
 *
 */
private Junction getSampleJunction(AdvancedSampleSearchBean searchBean) throws Exception {
    // if there are more than one POC query in AND, don't use junction.
    if (searchBean.getSampleLogicalOperator().equals("and") && searchBean.getPocCount() > 1) {
        return null;
    }
    Disjunction sampleDisjunction = Restrictions.disjunction();
    Conjunction sampleConjunction = Restrictions.conjunction();
    for (SampleQueryBean query : searchBean.getSampleQueries()) {
        if (query.getNameType().equals("sample name")) {
            Criterion sampleNameCrit = getSampleNameCriterion(query);
            if (sampleNameCrit != null) {
                sampleDisjunction.add(sampleNameCrit);
                sampleConjunction.add(sampleNameCrit);
            }
        }
        if (query.getNameType().equals("point of contact name")) {
            Disjunction pocDisjunction = getPointOfContactDisjunction(searchBean, "poc.", "otherPOC.");
            if (pocDisjunction != null) {
                sampleDisjunction.add(pocDisjunction);
                if (searchBean.getPocCount() == 1) {
                    sampleConjunction.add(pocDisjunction);
                }
            }
        }
    }
    Junction junction = (searchBean.getSampleLogicalOperator().equals("or")
            || searchBean.getSampleQueries().size() == 1) ? sampleDisjunction : sampleConjunction;
    return junction;
}