Search in sources :

Example 46 with Attribute

use of org.molgenis.data.meta.model.Attribute in project molgenis by molgenis.

the class AttributeReferenceMapperTest method testToAttributeReference.

@Test
public void testToAttributeReference() {
    String id = "id";
    String label = "label";
    EditorAttributeIdentifier editorAttributeIdentifier = EditorAttributeIdentifier.create(id, label);
    Attribute attribute = attributeReferenceMapper.toAttributeReference(editorAttributeIdentifier);
    assertEquals(attribute.getIdValue(), id);
}
Also used : EditorAttributeIdentifier(org.molgenis.metadata.manager.model.EditorAttributeIdentifier) Attribute(org.molgenis.data.meta.model.Attribute) Test(org.testng.annotations.Test)

Example 47 with Attribute

use of org.molgenis.data.meta.model.Attribute in project molgenis by molgenis.

the class MolgenisRSQLVisitor method getAttribute.

private Attribute getAttribute(ComparisonNode node) {
    String attrName = node.getSelector();
    String[] attrTokens = attrName.split("\\.");
    Attribute attr = entityType.getAttribute(attrTokens[0]);
    if (attr == null) {
        throw new UnknownAttributeException(entityType, attrName);
    }
    EntityType entityTypeAtDepth;
    for (int i = 1; i < attrTokens.length; ++i) {
        entityTypeAtDepth = attr.getRefEntity();
        attr = entityTypeAtDepth.getAttribute(attrTokens[i]);
        if (attr == null) {
            throw new UnknownAttributeException(entityTypeAtDepth, attrName);
        }
    }
    return attr;
}
Also used : EntityType(org.molgenis.data.meta.model.EntityType) Attribute(org.molgenis.data.meta.model.Attribute) UnknownAttributeException(org.molgenis.data.UnknownAttributeException)

Example 48 with Attribute

use of org.molgenis.data.meta.model.Attribute in project molgenis by molgenis.

the class DefaultEntityValidator method checkNotNull.

private Set<ConstraintViolation> checkNotNull(Iterable<? extends Entity> entities, EntityType meta) {
    Set<ConstraintViolation> violations = Sets.newLinkedHashSet();
    for (Attribute attr : meta.getAtomicAttributes()) {
        if (!attr.isNillable() && !attr.equals(meta.getIdAttribute()) && !attr.isAuto()) {
            long rowNr = 0;
            for (Entity entity : entities) {
                rowNr++;
                if (mustDoNotNullCheck(meta, attr, entity) && entity.get(attr.getName()) == null) {
                    String message = String.format("The attribute '%s' of entity '%s' with key '%s' can not be null.", attr.getName(), meta.getId(), entity.getString(meta.getLabelAttribute().getName()));
                    violations.add(new ConstraintViolation(message, rowNr));
                }
            }
        }
    }
    return violations;
}
Also used : Entity(org.molgenis.data.Entity) Attribute(org.molgenis.data.meta.model.Attribute)

Example 49 with Attribute

use of org.molgenis.data.meta.model.Attribute in project molgenis by molgenis.

the class DefaultValueReferenceValidatorImpl method getDefaultValueMap.

private Multimap<String, Attribute> getDefaultValueMap(EntityType entityType) {
    Multimap<String, Attribute> defaultValueMultiMap = LinkedHashMultimap.create();
    dataService.query(ATTRIBUTE_META_DATA, Attribute.class).eq(REF_ENTITY_TYPE, entityType.getIdValue()).and().not().eq(DEFAULT_VALUE, null).findAll().forEach(attribute -> {
        if (EntityTypeUtils.isSingleReferenceType(attribute)) {
            Entity defaultEntityValue = (Entity) getDefaultTypedValue(attribute);
            defaultValueMultiMap.put(defaultEntityValue.getIdValue().toString(), attribute);
        } else if (EntityTypeUtils.isMultipleReferenceType(attribute)) {
            @SuppressWarnings("unchecked") Iterable<Entity> defaultEntitiesValue = (Iterable<Entity>) getDefaultTypedValue(attribute);
            defaultEntitiesValue.forEach(defaultEntityValue -> defaultValueMultiMap.put(defaultEntityValue.getIdValue().toString(), attribute));
        }
    });
    return defaultValueMultiMap;
}
Also used : Collection(java.util.Collection) Multimap(com.google.common.collect.Multimap) EntityTypeUtils(org.molgenis.data.support.EntityTypeUtils) Attribute(org.molgenis.data.meta.model.Attribute) EntityType(org.molgenis.data.meta.model.EntityType) Collectors(java.util.stream.Collectors) AttributeUtils.getDefaultTypedValue(org.molgenis.data.support.AttributeUtils.getDefaultTypedValue) Component(org.springframework.stereotype.Component) Stream(java.util.stream.Stream) Objects.requireNonNull(java.util.Objects.requireNonNull) DataService(org.molgenis.data.DataService) AttributeMetadata(org.molgenis.data.meta.model.AttributeMetadata) LinkedHashMultimap(com.google.common.collect.LinkedHashMultimap) Entity(org.molgenis.data.Entity) Entity(org.molgenis.data.Entity) Attribute(org.molgenis.data.meta.model.Attribute)

Example 50 with Attribute

use of org.molgenis.data.meta.model.Attribute in project molgenis by molgenis.

the class RestControllerV2 method createEntityCollectionResponse.

private EntityCollectionResponseV2 createEntityCollectionResponse(String entityTypeId, EntityCollectionRequestV2 request, HttpServletRequest httpRequest, boolean includeCategories) {
    EntityType meta = dataService.getEntityType(entityTypeId);
    Query<Entity> q = request.getQ() != null ? request.getQ().createQuery(meta) : new QueryImpl<>();
    q.pageSize(request.getNum()).offset(request.getStart()).sort(request.getSort());
    Fetch fetch = AttributeFilterToFetchConverter.convert(request.getAttrs(), meta, LocaleContextHolder.getLocale().getLanguage());
    if (fetch != null) {
        q.fetch(fetch);
    }
    if (request.getAggs() != null) {
        // return aggregates for aggregate query
        AggregateQuery aggsQ = request.getAggs().createAggregateQuery(meta, q);
        Attribute xAttr = aggsQ.getAttributeX();
        Attribute yAttr = aggsQ.getAttributeY();
        if (xAttr == null && yAttr == null) {
            throw new MolgenisQueryException("Aggregate query is missing 'x' or 'y' attribute");
        }
        AggregateResult aggs = dataService.aggregate(entityTypeId, aggsQ);
        AttributeResponseV2 xAttrResponse = xAttr != null ? new AttributeResponseV2(entityTypeId, meta, xAttr, fetch, permissionService, dataService) : null;
        AttributeResponseV2 yAttrResponse = yAttr != null ? new AttributeResponseV2(entityTypeId, meta, yAttr, fetch, permissionService, dataService) : null;
        return new EntityAggregatesResponse(aggs, xAttrResponse, yAttrResponse, BASE_URI + '/' + entityTypeId);
    } else {
        Long count = dataService.count(entityTypeId, new QueryImpl<>(q).setOffset(0).setPageSize(0));
        Iterable<Entity> it;
        if (count > 0 && q.getPageSize() > 0) {
            it = () -> dataService.findAll(entityTypeId, q).iterator();
        } else {
            it = Collections.emptyList();
        }
        EntityPager pager = new EntityPager(request.getStart(), request.getNum(), count, it);
        List<Map<String, Object>> entities = new ArrayList<>();
        for (Entity entity : it) {
            Map<String, Object> responseData = new LinkedHashMap<>();
            createEntityValuesResponse(entity, fetch, responseData);
            entities.add(responseData);
        }
        UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(getFullURL(httpRequest));
        String prevHref = null;
        if (pager.getPrevStart() != null) {
            builder.replaceQueryParam("start", pager.getPrevStart());
            prevHref = builder.build(false).toUriString();
        }
        String nextHref = null;
        if (pager.getNextStart() != null) {
            builder.replaceQueryParam("start", pager.getNextStart());
            nextHref = builder.build(false).toUriString();
        }
        return new EntityCollectionResponseV2(pager, entities, fetch, BASE_URI + '/' + entityTypeId, meta, permissionService, dataService, prevHref, nextHref, includeCategories);
    }
}
Also used : Attribute(org.molgenis.data.meta.model.Attribute) AggregateQuery(org.molgenis.data.aggregation.AggregateQuery) EntityType(org.molgenis.data.meta.model.EntityType) AttributeFilterToFetchConverter.createDefaultAttributeFetch(org.molgenis.data.rest.v2.AttributeFilterToFetchConverter.createDefaultAttributeFetch) EntityPager(org.molgenis.data.rest.EntityPager) AggregateResult(org.molgenis.data.aggregation.AggregateResult) UriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder)

Aggregations

Attribute (org.molgenis.data.meta.model.Attribute)600 Test (org.testng.annotations.Test)351 EntityType (org.molgenis.data.meta.model.EntityType)321 Entity (org.molgenis.data.Entity)109 AbstractMockitoTest (org.molgenis.test.AbstractMockitoTest)54 DynamicEntity (org.molgenis.data.support.DynamicEntity)53 AbstractMolgenisSpringTest (org.molgenis.data.AbstractMolgenisSpringTest)47 Stream (java.util.stream.Stream)39 AttributeType (org.molgenis.data.meta.AttributeType)34 QueryImpl (org.molgenis.data.support.QueryImpl)29 ExplainedAttribute (org.molgenis.semanticsearch.explain.bean.ExplainedAttribute)29 UnexpectedEnumException (org.molgenis.util.UnexpectedEnumException)28 BeforeMethod (org.testng.annotations.BeforeMethod)20 EntityTypeIdentity (org.molgenis.data.security.EntityTypeIdentity)18 WithMockUser (org.springframework.security.test.context.support.WithMockUser)18 Collectors.toList (java.util.stream.Collectors.toList)17 Relation (org.molgenis.data.semantic.Relation)17 Objects.requireNonNull (java.util.Objects.requireNonNull)16 MolgenisDataException (org.molgenis.data.MolgenisDataException)16 Package (org.molgenis.data.meta.model.Package)16