package org.jboss.windup.rules.apps.javaee.model; import org.jboss.windup.graph.Indexed; import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.WindupVertexFrame; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.frames.Adjacency; import com.tinkerpop.frames.Property; import com.tinkerpop.frames.modules.javahandler.JavaHandler; import com.tinkerpop.frames.modules.javahandler.JavaHandlerContext; import com.tinkerpop.frames.modules.typedgraph.TypeValue; /** * Represents a JDNI resource found within the application. */ @TypeValue(JNDIResourceModel.TYPE) public interface JNDIResourceModel extends WindupVertexFrame, HasApplications { String TYPE = "JNDIResource"; String JNDI_LOCATION = "JNDI_LOCATION"; String APPLICATIONS = TYPE + "-application"; /** * Contains the application in which this JNDI resource was discovered. */ @Adjacency(label = APPLICATIONS, direction = Direction.OUT) Iterable<ProjectModel> getApplications(); /** * Contains the application in which this JNDI resource was discovered. */ @Adjacency(label = APPLICATIONS, direction = Direction.OUT) void addApplication(ProjectModel application); /** * Contains the application in which this JNDI resource was discovered. */ @Adjacency(label = APPLICATIONS, direction = Direction.OUT) void setApplications(Iterable<ProjectModel> applications); /** * Indicates whether this {@link JNDIResourceModel} is associated with the given application. */ @JavaHandler boolean isAssociatedWithApplication(ProjectModel application); /** * Contains JNDI Location */ @Indexed @Property(JNDI_LOCATION) String getJndiLocation(); /** * Contains JNDI Location */ @Property(JNDI_LOCATION) void setJndiLocation(String jndiLocation); abstract class Impl implements JNDIResourceModel, JavaHandlerContext<Vertex> { public boolean isAssociatedWithApplication(ProjectModel application) { boolean alreadyExists = false; for (ProjectModel existing : getApplications()) { if (existing.equals(application)) { alreadyExists = true; break; } } return alreadyExists; } } }