package org.jboss.windup.graph.model; import com.tinkerpop.blueprints.Element; import com.tinkerpop.frames.modules.javahandler.JavaHandler; import com.tinkerpop.frames.modules.javahandler.JavaHandlerContext; /** * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public interface WindupFrame<T extends Element> { /** * Name of the property where vertex/frame types are stored. * * @see org.jboss.windup.graph.GraphTypeManager */ String TYPE_PROP = "w:winduptype"; @JavaHandler @Override String toString(); /** * A string representation of this vertex, showing it's properties in a JSON-like format. */ @JavaHandler String toPrettyString(); abstract class Impl<T extends Element> implements WindupVertexFrame, JavaHandlerContext<T> { @Override public String toString() { return toPrettyString(); } public String toPrettyString() { Element v = it(); StringBuilder result = new StringBuilder(); result.append("[").append(v.toString()).append("="); result.append("{"); boolean hasSome = false; for (String propKey : v.getPropertyKeys()) { hasSome = true; Object propVal = v.getProperty(propKey); result.append(propKey).append(": ").append(propVal); result.append(", "); } if (hasSome) { result.delete(result.length() - 2, result.length()); } result.append("}]"); return result.toString(); } } }