package cz.cvut.fel.adaptiverestfulapi.meta;
import cz.cvut.fel.adaptiverestfulapi.meta.configuration.Variable;
import cz.cvut.fel.adaptiverestfulapi.meta.model.Attribute;
import cz.cvut.fel.adaptiverestfulapi.meta.model.Entity;
import cz.cvut.fel.adaptiverestfulapi.meta.model.Model;
import cz.cvut.fel.adaptiverestfulapi.meta.model.Relationship;
import java.util.List;
/**
* Allows to provide configuration from different scopes.
*/
public interface ConfigurationInspectionListener {
/**
* Returns global configuration variables.
* @return variables
*/
public List<Variable> configuration();
/**
* Returns configuration variables for the model.
* @param model
* @return variables
*/
public List<Variable> configuration(Model model);
/**
* Returns configuration variables for the entity.
* @param entity
* @return configuration
*/
public List<Variable> configuration(Entity entity);
/**
* Returns configuration variables for the attribute.
* @param attribute
* @return variables
*/
public List<Variable> configuration(Attribute attribute);
/**
* Returns configuration variables for the relationship.
* @param relationship
* @return variables
*/
public List<Variable> configuration(Relationship relationship);
}