package cz.cvut.fel.adaptiverestfulapi.meta; import cz.cvut.fel.adaptiverestfulapi.meta.model.Entity; import cz.cvut.fel.adaptiverestfulapi.meta.model.Property; import cz.cvut.fel.adaptiverestfulapi.meta.reflection.Triplet; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Set; /** * Listener for model inspection process. */ public interface ModelInspectionListener { /** * Inspect entity from class. * @param clazz * @return entity */ public Entity entity(Class clazz); /** * Inspect property (attribute or relationship) from triplet of field, getter and setter methods, * entity and set of known entities. * @param triplet * @param entity * @param entities * @return property */ public Property property(Triplet<Field, Method, Method> triplet, Entity entity, Set<Entity> entities); }