@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();
  }
Example #2
0
 /**
  * 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));
 }