package org.openntf.domino.graph2; import java.io.Externalizable; import java.io.Serializable; import java.util.List; import java.util.Map; import java.util.Set; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Element; import com.tinkerpop.blueprints.Vertex; /* * Interface definition to register relationship between a Frame type and an NSF */ public interface DElementStore extends Externalizable { public interface CustomProxyResolver { public void setProxiedElementStore(DElementStore store); public Map<String, Object> getOriginalDelegate(Serializable key); public Map<String, Object> getProxyDelegate(Serializable key); } public void setCustomProxyResolver(CustomProxyResolver resolver); public void addType(Class<?> type); public void removeType(Class<?> type); public List<Class<?>> getTypes(); public Object getStoreDelegate(); public void setStoreDelegate(Object store); public DConfiguration getConfiguration(); public void setConfiguration(DConfiguration config); public DIdentityFactory getIdentityFactory(); public Object getIdentity(Class<?> type, Object context, Object... args); public void setIdentityFactory(DIdentityFactory identFactory); public Long getStoreKey(); public void setStoreKey(Long key); public void setStoreKey(CharSequence key); public Long getProxyStoreKey(); public Object getProxyStoreDelegate(); public void setProxyStoreKey(Long key); public void setProxyStoreKey(CharSequence key); public void setProxyStoreDelegate(Object proxyStore); public Vertex addVertex(Object id); public Vertex getVertex(Object id); public void removeVertex(Vertex vertex); public Edge addEdge(Object id); public Edge getEdge(Object id); public void removeEdge(Edge edge); public void removeEdge(final Edge edge, final Vertex removingVertex); public Object findElementDelegate(Object delegateKey, Class<? extends Element> type); public void removeElementDelegate(Element element); public Element getElement(final Object id) throws IllegalStateException; public Set<Vertex> getCachedVertices(); public Set<Edge> getCachedEdges(); public DVertexIterable getVertices(); public DEdgeIterable getEdges(); public DVertexIterable getVertices(String formulaFilter); public DEdgeIterable getEdges(String formulaFilter); public DElementIterable getElements(String formulaFilter); public DVertexIterable getVertices(String key, Object value); public DEdgeIterable getEdges(String key, Object value); public DElementIterable getElements(String key, Object value); public void uncache(Element element); public boolean isProxied(); public void flushCache(); }