Class AnnotationRelationServiceImpl
- All Implemented Interfaces:
AnnotationRelationService
AnnotationRelationDao.
No write path, deliberately. Every row in this table is derived, and the only writer is the
maintenance rebuild in TableMaintenanceUtil. A service-level write would let a caller assert
a relation that no basis supports, which is the one thing the BASIS column exists to make
impossible.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfindRelatedTermsForSearch(Collection<String> seedValueUris, Collection<String> seedValues, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, Long taxonId, Collection<Long> excludedExperimentIds, int maximumObjectBreadth, int maxResults) Terms related to the seeds, for widening a query or testing membership.The ranked, evidenced read.findRelationsForExperiment(ExpressionExperiment ee, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, int maxResults) What this experiment's own annotations imply, for display beside them.
-
Constructor Details
-
AnnotationRelationServiceImpl
-
-
Method Details
-
findRelations
@Transactional(readOnly=true) public List<AnnotationRelationDao.RelationSummary> findRelations(AnnotationRelationDao.RelationQuery query) Description copied from interface:AnnotationRelationServiceThe ranked, evidenced read. SeeAnnotationRelationDao.findRelations(AnnotationRelationDao.RelationQuery).- Specified by:
findRelationsin interfaceAnnotationRelationService
-
findRelationsForExperiment
@Transactional(readOnly=true) public List<AnnotationRelationDao.RelationSummary> findRelationsForExperiment(ExpressionExperiment ee, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, int maxResults) Description copied from interface:AnnotationRelationServiceWhat this experiment's own annotations imply, for display beside them.Seeds from every annotation the experiment carries and reports what each stands in relation to, with the experiment itself held out of the evidence — a dataset shown its own annotation as support for itself is showing a tautology.
Only forward walks, and no conclusion the experiment already carries: both follow from
AnnotationRelationDao.RelationQuery.seedFromExperimentId(Long), which is what makes this an inference rather than a symmetric browse.- Specified by:
findRelationsForExperimentin interfaceAnnotationRelationService- Parameters:
direction- which way to read: what the experiment's terms stand for, or what stands for them
-
findRelatedTermsForSearch
@Transactional(readOnly=true) public List<String[]> findRelatedTermsForSearch(Collection<String> seedValueUris, Collection<String> seedValues, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, @Nullable Long taxonId, Collection<Long> excludedExperimentIds, int maximumObjectBreadth, int maxResults) Description copied from interface:AnnotationRelationServiceTerms related to the seeds, for widening a query or testing membership.No ranking and no ambiguity resolution, on purpose: SURF1's three diseases all belong in the set, and a caller testing membership gets the right answer whichever one is meant. A caller that needs to choose one wants
AnnotationRelationService.findRelations(AnnotationRelationDao.RelationQuery)and its evidence instead.- Specified by:
findRelatedTermsForSearchin interfaceAnnotationRelationService
-