Example usage for org.hibernate.criterion Restrictions disjunction

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

Introduction

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

Prototype

public static Disjunction disjunction() 

Source Link

Document

Group expressions together in a single disjunction (A or B or C...).

Usage

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   www .j  a va2s . c  o  m*/
    segmentDataCrit.add(overallOrStatement);

}

From source file:gov.nih.nci.caintegrator.domain.annotation.service.AnnotationManagerImpl.java

License:BSD License

public Collection<GeneBiomarker> getGeneAnnotations(AnnotationCriteria annotationCriteria) {
    Collection<String> geneIds = annotationCriteria.getGeneSymbols();
    if (geneIds == null || geneIds.isEmpty()) {
        throw new RuntimeException("Gene symbol list cannot be empty");
    }//from  w  ww  . j  a v  a 2s. c om
    Session currentSession = sessionFactory.getCurrentSession();
    Criteria criteria = currentSession.createCriteria(GeneBiomarker.class);
    criteria.createAlias("geneAliasCollection", "alias");
    criteria.add(Restrictions.disjunction().add(Restrictions.in("alias.alias", geneIds))
            .add(Restrictions.in("alias.hugoGeneSymbol", geneIds)));
    List<GeneBiomarker> genes = criteria.list();
    return genes;
}

From source file:gov.nih.nci.caintegrator.domain.annotation.service.AnnotationManagerImpl.java

License:BSD License

public List<CytobandPosition> getCytobandPositions(String chromosome, String startCytoband,
        String endCytoband) {/*from   w  ww.j  a  v a 2 s  .  c  o  m*/
    Session currentSession = sessionFactory.getCurrentSession();
    Criteria criteria = currentSession.createCriteria(CytobandPosition.class);
    criteria.add(Restrictions.eq("chromosomeName", chromosome));
    if (startCytoband != null && endCytoband != null) {
        criteria.add(Restrictions.disjunction().add(Restrictions.eq("cytoband", startCytoband))
                .add(Restrictions.eq("cytoband", endCytoband)));
    }
    criteria.addOrder(Order.asc("cytobandStartPosition"));
    List<CytobandPosition> positions = criteria.list();
    return positions;
}

From source file:gov.nih.nci.caintegrator.domain.annotation.service.AnnotationManagerImpl.java

License:BSD License

public List<GeneAlias> getGeneAliasForSymbol(String symbol) {
    Session currentSession = sessionFactory.getCurrentSession();
    Criteria criteria = currentSession.createCriteria(GeneAlias.class);
    criteria.add(Restrictions.disjunction().add(Restrictions.ilike("alias", symbol, MatchMode.START))
            .add(Restrictions.ilike("hugoGeneSymbol", symbol, MatchMode.START)));
    return criteria.list();
}

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  ww w .j a v a2 s  .co  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

private Disjunction getCharacterizationDisjunction(AdvancedSampleSearchBean searchBean, DetachedCriteria crit,
        String charAlias) {//from w  w  w  .  ja  va2s .  c om
    Disjunction charDisjunction = Restrictions.disjunction();
    for (CharacterizationQueryBean charQuery : searchBean.getCharacterizationQueries()) {
        Criterion charCrit = getCharacterizationCriterion(charQuery, charAlias);
        if (charCrit != null) {
            charDisjunction.add(charCrit);
        }
    }
    return charDisjunction;
}

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

License:BSD License

/**
 * Get the junction used in composition queries
 * /*from   w w w  .j  a  v  a  2  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
 * //  w ww.ja  v  a 2  s. 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
 * /*  www .j  a  v  a 2s.  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  a v  a 2  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;
}