All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.corbel.resources.service.DefaultRelationSchemaService Maven / Gradle / Ivy

package io.corbel.resources.service;

import java.util.Set;

import io.corbel.resources.model.RelationSchema;
import io.corbel.resources.rem.plugin.RelationRegistry;
import io.corbel.resources.repository.RelationSchemaRepository;

/**
 * @author Rubén Carrasco
 * 
 */
public class DefaultRelationSchemaService implements RelationSchemaService {

    private final RelationSchemaRepository repository;
    private final RelationRegistry relationRegistry;

    public DefaultRelationSchemaService(RelationSchemaRepository repository, RelationRegistry relationRegistry) {
        this.repository = repository;
        this.relationRegistry = relationRegistry;
    }

    @Override
    public Set getTypeRelations(String type) {
        Set typeRelations = relationRegistry.getTypeRelations(type);
        RelationSchema relationSchema = repository.findOne(type);
        if (relationSchema != null) {
            Set keySet = relationSchema.getRelations().keySet();
            typeRelations.addAll(keySet);
        }
        return typeRelations;
    }

    @Override
    public Set getRelationFields(String type, String relation) {
        Set relationFields = relationRegistry.getRelationFields(type, relation);
        RelationSchema relationSchema = repository.findOne(type);
        if (relationSchema != null) {
            Set relations = relationSchema.getRelations().get(relation);
            if (relations != null) {
                relationFields.addAll(relations);
            }
        }
        return relationFields;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy