package cz.cvut.fel.adaptiverestfulapi.example; import cz.cvut.fel.adaptiverestfulapi.data.DeleteHandler; import cz.cvut.fel.adaptiverestfulapi.data.GetHandler; import cz.cvut.fel.adaptiverestfulapi.data.PostHandler; import cz.cvut.fel.adaptiverestfulapi.data.PutHandler; import cz.cvut.fel.adaptiverestfulapi.example.security.Users; import cz.cvut.fel.adaptiverestfulapi.meta.ConfigurationInspectionListener; 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 cz.cvut.fel.adaptiverestfulapi.serialization.Authorization; import cz.cvut.fel.adaptiverestfulapi.serialization.application.json.JsonSerializer; import cz.cvut.fel.adaptiverestfulapi.serialization.text.plain.PlainTextSerializer; import javax.persistence.EntityManager; import java.util.LinkedList; import java.util.List; public class ConfigurationListener implements ConfigurationInspectionListener { @Override public List<Variable> configuration() { EntityManager entityManager = PersistenceContext.getInstance().getManager(); List<Variable> vars = new LinkedList<>(); vars.add(new Variable(GetHandler.Key, new cz.cvut.fel.adaptiverestfulapi.data.persistence.GetHandler(entityManager))); vars.add(new Variable(PostHandler.Key, new cz.cvut.fel.adaptiverestfulapi.data.persistence.PostHandler(entityManager))); vars.add(new Variable(PutHandler.Key, new cz.cvut.fel.adaptiverestfulapi.data.persistence.PutHandler(entityManager))); vars.add(new Variable(DeleteHandler.Key, new cz.cvut.fel.adaptiverestfulapi.data.persistence.DeleteHandler(entityManager))); vars.add(new Variable(PlainTextSerializer.MIME, new PlainTextSerializer())); vars.add(new Variable(JsonSerializer.MIME, new JsonSerializer())); return vars; } @Override public List<Variable> configuration(Model model) { return new LinkedList<>(); } @Override public List<Variable> configuration(Entity entity) { List<Variable> vars = new LinkedList<>(); Authorization auth = Users.getInstance().serializationAuthorization(entity); if (auth != null) { vars.add(new Variable(Authorization.Key, auth)); } return vars; } @Override public List<Variable> configuration(Attribute attribute) { List<Variable> vars = new LinkedList<>(); Authorization auth = Users.getInstance().serializationAuthorization(attribute); if (auth != null) { vars.add(new Variable(Authorization.Key, auth)); } return vars; } @Override public List<Variable> configuration(Relationship relationship) { List<Variable> vars = new LinkedList<>(); Authorization auth = Users.getInstance().serializationAuthorization(relationship); if (auth != null) { vars.add(new Variable(Authorization.Key, auth)); } return vars; } }