Interface CharacteristicReadService

All Known Implementing Classes:
CharacteristicReadServiceImpl

public interface CharacteristicReadService
Read-only retrieval service for Characteristic and Statement.

Phase 3 of the CharacteristicService decomposition (strangler fig). This service houses the DAO-bound read cluster previously implemented directly on the CharacteristicServiceImpl facade: browse, findExperimentsByUris, findByParentClasses, findByUri, findBestByUri, findByValueStartingWith, findByValueLike, findByValueUriOrValueStartingWith, countByValueUri, findValueGroupedByValueUri, getParents, findByCategoryStartingWith, findByCategoryUri, findByAnyValue, findByAnyValueStartingWith, findByAnyUri, findByPredicate, findByPredicateUri, findByObject, and findByObjectUri. All methods delegate to CharacteristicDao and StatementDao (with simple aggregation / Hibernate-initialize wrapping where appropriate) and orchestrate no other collaborators.

Write-side methods (create, save, update, remove, plus the inherited BaseService mutators) stay on the CharacteristicService facade.

Callers should generally keep using CharacteristicService as the facade -- the facade delegates to this service. Direct injection is appropriate where a class is logically read-only (REST endpoints, CLIs, browser controllers, intra-core readers).

ACL / @Secured annotations live on CharacteristicService (the caller-facing facade interface); enforcement happens at the facade proxy boundary, so this interface is intentionally unsecured.

See Also: