List of usage examples for org.hibernate.criterion Restrictions conjunction
public static Conjunction conjunction()
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; }