package com.tinkerpop.frames.modules; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Vertex; /** * Allows dynamic resolution of interfaces that a frame will implement when framing an element. * For instance the java type information may retrieved from a property on the element. * Instances of this class should be threadsafe. * * @author Bryn Cooke */ public interface TypeResolver { /** * @param v The vertex being framed. * @param defaultType The default as passed in to the framing method. * @return Any additional interfaces that the frame should implement. */ Class<?>[] resolveTypes(Vertex v, Class<?> defaultType); /** * @param e The edge being framed. * @param defaultType The default as passed in to the framing method. * @return Any additional interfaces that the frame should implement. */ Class<?>[] resolveTypes(Edge e, Class<?> defaultType); }