package org.jboss.windup.rules.apps.javaee.model; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.frames.Adjacency; import com.tinkerpop.frames.Property; import com.tinkerpop.frames.modules.typedgraph.TypeValue; import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.WindupVertexFrame; import org.jboss.windup.rules.apps.java.model.JavaClassModel; /** * A common super model for EjbEntityBeanModel, JPAEntityModel and HibernateEntityModel. * TODO: this could go further - PersistenceOrmEntityModel to get more common things from HibernateEntityModel. * * @author <a href="mailto:zizka@seznam.cz">Ondrej Zizka</a> */ @TypeValue(PersistenceEntityModel.TYPE) public interface PersistenceEntityModel extends WindupVertexFrame, HasApplications { String TYPE = "PersistenceEntity"; String APPLICATIONS = TYPE + "-applications"; String ENTITY_NAME = TYPE + "-entityName"; String JPA_ENTITY_CLASS = TYPE + "-jpaEntityClass"; String TABLE_NAME = TYPE + "-tableName"; /** * Contains the application in which this JPA entity was discovered. */ @Adjacency(label = APPLICATIONS, direction = Direction.OUT) Iterable<ProjectModel> getApplications(); /** * Contains the entity name */ @Property(value = ENTITY_NAME) String getEntityName(); /** * Contains the entity class */ @Adjacency(label = JPA_ENTITY_CLASS, direction = Direction.OUT) JavaClassModel getJavaClass(); /** * Contains the application in which this JPA entity was discovered. */ @Adjacency(label = APPLICATIONS, direction = Direction.OUT) void setApplications(Iterable<ProjectModel> applications); /** * Contains the entity name */ @Property(value = ENTITY_NAME) void setEntityName(String entityName); /** * Contains the entity class */ @Adjacency(label = JPA_ENTITY_CLASS, direction = Direction.OUT) void setJavaClass(JavaClassModel ejbHome); /** * Contains the name of the Table used by this Entity */ @Property(TABLE_NAME) String getTableName(); /** * Contains the name of the Table used by this Entity */ @Property(TABLE_NAME) void setTableName(String tableName); }