@Override public Stream<Entity> findAll(Query q) { if (q.getRules().isEmpty()) { return getEntities().stream(); } if ((q.getRules().size() != 1) || (q.getRules().get(0).getOperator() != Operator.EQUALS)) { throw new MolgenisDataException("The only query allowed on this Repository is gene EQUALS"); } String geneSymbol = (String) q.getRules().get(0).getValue(); List<Entity> entities = getEntitiesByGeneSymbol().get(geneSymbol); return entities != null ? entities.stream() : Stream.empty(); }
/** * Validates query based on the given entity type, converts query values to the expected type if * necessary. * * @param query query * @param entityType entity type * @throws MolgenisValidationException if query is invalid */ public void validate(Query<? extends Entity> query, EntityType entityType) { query.getRules().forEach(queryRule -> validateQueryRule(queryRule, entityType)); }