package org.jboss.windup.graph.service; import org.jboss.windup.graph.GraphContext; import org.jboss.windup.graph.model.LinkModel; import com.tinkerpop.blueprints.Vertex; /** * Contains methods for loading, querying, and deleting {@link LinkModel}s. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public class LinkService extends GraphService<LinkModel> { /** * Constructs a {@link LinkService} instance. */ public LinkService(GraphContext context) { super(context, LinkModel.class); } /** * Tries to find a link with the specified description and href. If it cannot, then it will return a new one. */ public LinkModel getOrCreate(String description, String href) { Iterable<Vertex> results = getTypedQuery().has(LinkModel.PROPERTY_DESCRIPTION, description).has(LinkModel.PROPERTY_LINK, href).vertices(); if (!results.iterator().hasNext()) { LinkModel model = create(); model.setDescription(description); model.setLink(href); return model; } return frame(results.iterator().next()); } }