package org.jboss.windup.rules.apps.javaee.service; import com.thinkaurelius.titan.core.attribute.Text; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.frames.structures.FramedVertexIterable; import com.tinkerpop.gremlin.java.GremlinPipeline; import org.jboss.windup.graph.GraphContext; import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.WindupVertexFrame; import org.jboss.windup.graph.service.GraphService; import org.jboss.windup.rules.apps.javaee.model.HibernateEntityModel; /** * Contains methods for querying, creating, and deleting {@link HibernateEntityModel}s. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> * */ public class HibernateEntityService extends GraphService<HibernateEntityModel> { public HibernateEntityService(GraphContext context) { super(context, HibernateEntityModel.class); } /** * Gets an {@link Iterable} of {@link }s for the given {@link ProjectModel}. */ public Iterable<HibernateEntityModel> findAllByApplication(ProjectModel application) { GremlinPipeline<Vertex, Vertex> pipeline = new GremlinPipeline<>(application.asVertex()); pipeline.in(HibernateEntityModel.APPLICATIONS); pipeline.has(WindupVertexFrame.TYPE_PROP, Text.CONTAINS, HibernateEntityModel.TYPE); return new FramedVertexIterable<>(getGraphContext().getFramed(), pipeline, HibernateEntityModel.class); } }