Search in sources :

Example 6 with DEdge

use of org.openntf.domino.graph2.impl.DEdge in project org.openntf.domino by OpenNTF.

the class JsonFrameAdapter method getJsonProperties.

@Override
public Iterator<String> getJsonProperties() {
    // System.out
    // .println("TEMP DEBUG getting Json properties list for a frame of type
    // "
    // + frame_.getClass().getName());
    List<String> result = new ArrayList<String>();
    // if (getActionsParam() != null) {
    // for (CharSequence cis : getActionsParam()) {
    // result.add("%" + cis.toString());
    // }
    // }
    result.add("@id");
    result.add("@type");
    result.add("@editable");
    if (getIncludeDebug()) {
        result.add("@debug");
    }
    if (getFrame() instanceof VertexFrame) {
        result.add("@versions");
    }
    Collection<CharSequence> props = getProperties();
    if (props == null) {
        // NoteCoordinate nc = (NoteCoordinate)
        // ((VertexFrame)frame_).asVertex().getId();
        props = new ArrayList<CharSequence>();
        props.addAll(getGetters().keySet());
        Class<?> klazz = frame_.getClass();
        boolean incl = isInclusive(klazz);
        // }
        if (props == null || props.size() < 5 || incl) {
            if (frame_ instanceof DVertexFrame) {
                try {
                    Set<String> raw = ((DVertexFrame) frame_).asVertex().getPropertyKeys();
                    // Set<CharSequence> raw = ((DVertexFrame) frame_).asMap().keySet();
                    // System.out.println("TEMP DEBUG raw vertex has " + raw.size() + " properties");
                    props.addAll(CaseInsensitiveString.toCaseInsensitive(raw));
                } catch (Throwable t) {
                    Throwable cause = t.getCause();
                    if (cause != null) {
                        System.err.println("Exception trying to process a frame of type " + DGraphUtils.findInterface(frame_) + " resulting in a " + cause.getClass().getSimpleName());
                        cause.printStackTrace();
                        try {
                            throw cause;
                        } catch (Throwable e) {
                            e.printStackTrace();
                        }
                    }
                }
            } else if (frame_ instanceof DEdgeFrame) {
            // Set<CharSequence> raw = ((DEdgeFrame)
            // frame_).asMap().keySet();
            // props.addAll(CaseInsensitiveString.toCaseInsensitive(raw));
            }
        }
    }
    for (CharSequence cis : props) {
        result.add(cis.toString());
    // System.out.println("Adding " + cis.toString());
    }
    Object frame = getFrame();
    if (frame instanceof VertexFrame && getIncludeEdges()) {
        result.add("@edges");
    }
    if (getIncludeActions()) {
        result.add("@actions");
    }
    if (frame instanceof VertexFrame && getIncludeCounts()) {
        for (CaseInsensitiveString key : getCounters().keySet()) {
            result.add("@counts" + key.toString());
        }
    }
    if (frame instanceof VertexFrame) {
        Vertex v = ((VertexFrame) frame).asVertex();
        if (v instanceof DProxyVertex) {
            result.add("@proxyid");
        }
    }
    if (frame instanceof VertexFrame && getLabels() != null) {
        for (CharSequence cis : getLabels()) {
            result.add("#" + cis.toString());
        }
    }
    if (frame instanceof EdgeFrame) {
        result.add("@in");
        result.add("@out");
        result.add("@label");
    }
    if (frame instanceof ViewVertex) {
        result.add("@columninfo");
    }
    // }
    if (frame instanceof ViewVertex.Contains) {
        Edge edge = ((ViewVertex.Contains) frame).asEdge();
        if (edge instanceof DEdge) {
            result.addAll(((DEdge) edge).getDelegate().keySet());
        }
    }
    Collection<CharSequence> hideProps = getHideProperties();
    if (hideProps != null && !hideProps.isEmpty()) {
        for (CharSequence cis : hideProps) {
            result.remove(cis.toString());
        }
    }
    // System.out.println("TEMP DEBUG getting properties for a " + DGraphUtils.getInterfaceList(frame) + " -- " + Strings.getString(result, ","));
    return result.iterator();
}
Also used : ViewVertex(org.openntf.domino.graph2.builtin.ViewVertex) DVertex(org.openntf.domino.graph2.impl.DVertex) Vertex(com.tinkerpop.blueprints.Vertex) DbInfoVertex(org.openntf.domino.graph2.builtin.DbInfoVertex) DProxyVertex(org.openntf.domino.graph2.impl.DProxyVertex) DProxyVertex(org.openntf.domino.graph2.impl.DProxyVertex) EdgeFrame(com.tinkerpop.frames.EdgeFrame) DEdgeFrame(org.openntf.domino.graph2.builtin.DEdgeFrame) ArrayList(java.util.ArrayList) CaseInsensitiveString(org.openntf.domino.types.CaseInsensitiveString) CaseInsensitiveString(org.openntf.domino.types.CaseInsensitiveString) DVertexFrame(org.openntf.domino.graph2.builtin.DVertexFrame) DVertexFrame(org.openntf.domino.graph2.builtin.DVertexFrame) VertexFrame(com.tinkerpop.frames.VertexFrame) ViewVertex(org.openntf.domino.graph2.builtin.ViewVertex) DEdgeFrame(org.openntf.domino.graph2.builtin.DEdgeFrame) JsonJavaObject(com.ibm.commons.util.io.json.JsonJavaObject) JsonObject(com.ibm.commons.util.io.json.JsonObject) DEdge(org.openntf.domino.graph2.impl.DEdge) Edge(com.tinkerpop.blueprints.Edge) DEdge(org.openntf.domino.graph2.impl.DEdge)

Example 7 with DEdge

use of org.openntf.domino.graph2.impl.DEdge in project org.openntf.domino by OpenNTF.

the class JsonFrameAdapter method getJsonProperty.

@SuppressWarnings("unlikely-arg-type")
@Override
public Object getJsonProperty(final String paramKey) {
    Object result = null;
    Object frame = getFrame();
    if (frame != null) {
        CaseInsensitiveString key = new CaseInsensitiveString(paramKey);
        if (key.equals("@id")) {
            if (frame instanceof VertexFrame) {
                Vertex v = ((VertexFrame) frame).asVertex();
                // if (v instanceof DProxyVertex) {
                // result = ((DProxyVertex)v).getProxyDelegate().getId().toString();
                // } else {
                result = String.valueOf(v.getId());
            // }
            } else if (frame instanceof EdgeFrame) {
                result = String.valueOf(((EdgeFrame) frame).asEdge().getId());
            }
        } else if (key.equals("@editable")) {
            if (frame instanceof VertexFrame) {
                result = ((DVertex) ((VertexFrame) frame).asVertex()).isEditable();
            } else if (frame instanceof EdgeFrame) {
                result = ((DEdge) ((EdgeFrame) frame).asEdge()).isEditable();
            }
        } else if (key.equals("@proxyid")) {
            // System.out.println("TEMP DEBUG @proxyid requested");
            if (frame instanceof VertexFrame) {
                Vertex v = ((VertexFrame) frame).asVertex();
                if (v instanceof DProxyVertex) {
                    result = ((DProxyVertex) v).getProperty(DProxyVertex.PROXY_ITEM, String.class);
                }
            }
        } else if (key.equals("@versions")) {
            if (frame instanceof VertexFrame) {
                try {
                    Vertex v = ((VertexFrame) frame).asVertex();
                    Object id = v.getId();
                    Session sess = Factory.getSession(SessionType.CURRENT);
                    Document doc = sess.getDocumentByMetaversalID(id.toString());
                    if (doc != null) {
                        Database db = doc.getAncestorDatabase();
                        List<DocumentBackupContributor> contributors = Factory.findApplicationServices(DocumentBackupContributor.class);
                        if (contributors != null) {
                            for (DocumentBackupContributor contributor : contributors) {
                                Optional<List<Date>> dates = contributor.getRevisionDates(db, doc.getUniversalID());
                                if (dates.isPresent()) {
                                    result = dates.get();
                                    break;
                                }
                            }
                        }
                    }
                } catch (Throwable t) {
                    t.printStackTrace();
                }
            }
            if (result == null) {
                List<String> resultList = new ArrayList<String>();
                resultList.add("N/A");
                result = resultList;
            }
        } else if (key.equals("@debug")) {
            Map<String, String> debugMap = new LinkedHashMap<String, String>();
            debugMap.put("frameIdentity", String.valueOf(System.identityHashCode(this)));
            if (frame instanceof VertexFrame) {
                Vertex v = ((VertexFrame) frame).asVertex();
                debugMap.put("vertexIdentity", String.valueOf(System.identityHashCode(v)));
            } else if (frame instanceof EdgeFrame) {
                Edge e = ((EdgeFrame) frame).asEdge();
                debugMap.put("vertexIdentity", String.valueOf(System.identityHashCode(e)));
            }
            result = debugMap;
        } else if (key.equals("@type")) {
            if (frame instanceof VertexFrame) {
                result = type_;
            } else if (frame instanceof EdgeFrame) {
                result = type_;
            }
        } else if (key.equals("@label")) {
            if (frame instanceof EdgeFrame) {
                Edge e = ((EdgeFrame) frame).asEdge();
                result = e.getLabel();
            }
        } else if (key.equals("@in") && frame instanceof EdgeFrame) {
            if (getInProperties() == null) {
                // why not just make a frame adapter with the vertex?
                // because that's another I/O operation. We already have the
                // information needed to
                DEdge dedge = (DEdge) ((EdgeFrame) frame).asEdge();
                Map<String, String> minProps = new LinkedHashMap<String, String>();
                minProps.put("@id", dedge.getVertexId(Direction.IN).toString());
                Class<?> inType = graph_.getTypeRegistry().getInType(type_);
                if (inType == null) {
                    minProps.put("@type", "Vertex");
                } else {
                    minProps.put("@type", inType.getName());
                }
                result = minProps;
            } else {
                ParamMap inMap = new ParamMap();
                inMap.put(Parameters.PROPS, CaseInsensitiveString.toStrings(getInProperties()));
                if (getIncludeEdges()) {
                    inMap.put(Parameters.EDGES, EMPTY_STRINGS);
                }
                if (getIncludeCounts()) {
                    inMap.put(Parameters.COUNTS, EMPTY_STRINGS);
                }
                Method inMethod = graph_.getTypeRegistry().getIn(type_);
                if (inMethod != null) {
                    try {
                        Object raw = inMethod.invoke(frame, (Object[]) null);
                        if (raw instanceof VertexFrame) {
                            VertexFrame inFrame = (VertexFrame) raw;
                            result = new JsonFrameAdapter(graph_, inFrame, inMap, isCollectionRoute_);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } else {
                    System.out.println("In method not found for type: " + type_.getName());
                }
            }
        } else if (key.equals("@out") && frame instanceof EdgeFrame) {
            if (getOutProperties() == null) {
                // why not just make a frame adapter with the vertex?
                // because that's another I/O operation. We already have the
                // information needed to
                DEdge dedge = (DEdge) ((EdgeFrame) frame).asEdge();
                Map<String, String> minProps = new LinkedHashMap<String, String>();
                minProps.put("@id", dedge.getVertexId(Direction.OUT).toString());
                Class<?> outType = graph_.getTypeRegistry().getOutType(type_);
                if (outType == null) {
                    minProps.put("@type", "Vertex");
                } else {
                    minProps.put("@type", outType.getName());
                }
                result = minProps;
            } else {
                ParamMap outMap = new ParamMap();
                outMap.put(Parameters.PROPS, CaseInsensitiveString.toStrings(getOutProperties()));
                if (getIncludeEdges()) {
                    outMap.put(Parameters.EDGES, EMPTY_STRINGS);
                }
                if (getIncludeCounts()) {
                    outMap.put(Parameters.COUNTS, EMPTY_STRINGS);
                }
                Method outMethod = graph_.getTypeRegistry().getOut(type_);
                if (outMethod != null) {
                    try {
                        Object raw = outMethod.invoke(frame, (Object[]) null);
                        if (raw instanceof VertexFrame) {
                            VertexFrame outFrame = (VertexFrame) raw;
                            result = new JsonFrameAdapter(graph_, outFrame, outMap, isCollectionRoute_);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        } else if (key.equals("@edges")) {
            Map<String, Integer> edgeCounts = new LinkedHashMap<String, Integer>();
            Set<CaseInsensitiveString> counterKeys = getCounters().keySet();
            // " edge types");
            for (CaseInsensitiveString label : counterKeys) {
                Method crystal = getCounters().get(label);
                if (crystal != null) {
                    // key);
                    try {
                        Object raw = crystal.invoke(getFrame(), (Object[]) null);
                        if (raw instanceof Integer) {
                            edgeCounts.put(label.toString(), (Integer) raw);
                        } else {
                        }
                    } catch (IllegalArgumentException iae) {
                        System.out.println("TEMP DEBUG Attempting to invoke " + crystal.getDeclaringClass().getName() + "." + crystal.getName() + " on an " + getFrame().getClass().getName() + " (" + DGraphUtils.getInterfaceList(getFrame()) + ")");
                        throw new RuntimeException(iae);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                } else {
                // System.out.println("TEMP DEBUG No method found for
                // key "
                // + key);
                }
            }
            result = edgeCounts;
        } else if (key.equals("@actions")) {
            List<CaseInsensitiveString> actionList = new ArrayList<CaseInsensitiveString>();
            Set<CaseInsensitiveString> actionNames = getActions().keySet();
            for (CaseInsensitiveString name : actionNames) {
                actionList.add(name);
            }
            result = actionList;
        } else if (key.startsWith("@counts")) {
            String label = key.toString().substring("@counts".length());
            Method crystal = getCounters().get(new CaseInsensitiveString(label));
            if (crystal != null) {
                try {
                    Object raw = crystal.invoke(getFrame(), (Object[]) null);
                    if (raw instanceof Integer) {
                        result = raw;
                    } else {
                    // System.out.println("TEMP DEBUG Invokation of a
                    // counter resulted in a "
                    // + (raw == null ? "null" :
                    // raw.getClass().getName()));
                    }
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            } else {
            // System.out.println("TEMP DEBUG No method found for key "
            // + label);
            }
        } else if (key.equals("@columninfo")) {
            if (frame instanceof ViewVertex) {
                Map<String, String> columnInfo = new LinkedHashMap<String, String>();
                if (frame instanceof ViewVertex) {
                    View view = ((ViewVertex) frame).asView();
                    if (view != null) {
                        try {
                            for (ViewColumn column : view.getColumns()) {
                                String progName = column.getItemName();
                                String title = column.getTitle();
                                columnInfo.put(progName, title);
                            }
                        } catch (Throwable t) {
                            columnInfo.put("@error", "Unable to access column information");
                        }
                    }
                } else {
                    System.err.println("Frame is not a ViewVertex. It is " + DGraphUtils.findInterface(frame));
                }
                return columnInfo;
            }
        } else if (key.equals("@viewinfo")) {
            if (frame instanceof DbInfoVertex) {
                List viewInfo = ((DbInfoVertex) frame).getViewInfo();
                return viewInfo;
            }
        } else if (key.startsWith("#") && frame instanceof VertexFrame) {
            CharSequence label = key.subSequence(1, key.length());
            Method crystal = getIncidences().get(label);
            if (crystal != null) {
                try {
                    result = crystal.invoke(frame, (Object[]) null);
                } catch (IllegalArgumentException iae) {
                    throw new RuntimeException(iae.getMessage() + " where the expect call is " + crystal.getDeclaringClass().getName() + "." + crystal.getName() + " but the object is " + DGraphUtils.getInterfaceList(frame));
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
                if (result != null) {
                    if (!(result instanceof Iterable)) {
                        if (result instanceof EdgeFrame) {
                            Vertex v = ((VertexFrame) frame).asVertex();
                            List<Edge> edges = new org.openntf.domino.graph2.impl.DEdgeList((DVertex) v);
                            edges.add(((EdgeFrame) result).asEdge());
                            result = new FramedEdgeList(getGraph(), ((VertexFrame) frame).asVertex(), edges, crystal.getReturnType());
                        }
                    }
                    if (getIncludeVertices()) {
                        // EdgeList into VertexList");
                        if (result instanceof DEdgeList) {
                            result = ((DEdgeList) result).toVertexList();
                        } else if (result instanceof FramedEdgeList) {
                            result = ((FramedEdgeList<?>) result).toVertexList();
                        } else {
                            System.err.println("TEMP DEBUG: Expected a DEdgeList but got a " + result.getClass().getName());
                        }
                    }
                    if (getFilterKeys() != null && !isCollectionRoute_) {
                        if (result instanceof DEdgeList) {
                            // System.out.println("TEMP DEBUG: Applying
                            // a filter to a DEdgeList");
                            List<CharSequence> filterKeys = getFilterKeys();
                            List<CharSequence> filterValues = getFilterValues();
                            for (int i = 0; i < filterKeys.size(); i++) {
                                result = ((DEdgeList) result).applyFilter(filterKeys.get(i).toString(), filterValues.get(i).toString());
                            }
                        } else if (result instanceof DVertexList) {
                            // System.out.println("TEMP DEBUG: Applying
                            // a filter to a DVertexList");
                            List<CharSequence> filterKeys = getFilterKeys();
                            List<CharSequence> filterValues = getFilterValues();
                            for (int i = 0; i < filterKeys.size(); i++) {
                                result = ((DVertexList) result).applyFilter(filterKeys.get(i).toString(), filterValues.get(i).toString());
                            }
                        } else if (result instanceof FramedEdgeList) {
                            // System.out.println("TEMP DEBUG: Applying
                            // a filter to a FramedEdgeList");
                            List<CharSequence> filterKeys = getFilterKeys();
                            List<CharSequence> filterValues = getFilterValues();
                            for (int i = 0; i < filterKeys.size(); i++) {
                                result = ((FramedEdgeList<?>) result).applyFilter(filterKeys.get(i).toString(), filterValues.get(i).toString());
                            }
                        } else if (result instanceof FramedVertexList) {
                            List<CharSequence> filterKeys = getFilterKeys();
                            List<CharSequence> filterValues = getFilterValues();
                            for (int i = 0; i < filterKeys.size(); i++) {
                                String curkey = filterKeys.get(i).toString();
                                String curvalue = filterValues.get(i).toString();
                                // System.out.println("TEMP DEBUG:
                                // Applying a filter to a
                                // FramedVertexList - "
                                // + curkey + ":" + curvalue);
                                result = ((FramedVertexList<?>) result).applyFilter(curkey, curvalue);
                            }
                        }
                    }
                    if (getStartsValues() != null) {
                        // + result.getClass().getName());
                        if (result instanceof DEdgeEntryList) {
                            ((DEdgeEntryList) result).initEntryList(getStartsValues());
                        } else if (result instanceof FramedEdgeList) {
                            ((FramedEdgeList) result).applyFilter("lookup", getStartsValues());
                        }
                    }
                    if (getFilterValues() != null && getFilterKeys() == null) {
                        if (result instanceof DEdgeEntryList) {
                            // System.out.println("TEMP DEBUG filtering a
                            // DEdgeEntryList");
                            ((DEdgeEntryList) result).filterEntryList(getFilterValues());
                        } else if (result instanceof FramedEdgeList) {
                            ((FramedEdgeList) result).applyFilter("filter", getFilterValues());
                        }
                    }
                    if (getOrderBys() != null) {
                        if (result instanceof FramedEdgeList) {
                            // System.out.println("Ordering an edge
                            // list");
                            result = ((FramedEdgeList<?>) result).sortBy(getOrderBys(), getDescending());
                        } else if (result instanceof FramedVertexList) {
                            // System.out.println("Ordering a vertex
                            // list");
                            result = ((FramedVertexList<?>) result).sortBy(getOrderBys(), getDescending());
                        }
                    }
                    if (getStart() >= 0) {
                        // + " for a " + result.getClass().getName());
                        if (getCount() > 0) {
                            int end = getStart() + getCount();
                            if (result instanceof FramedEdgeList) {
                                // System.out.println("TEMP DEBUG Sublisting
                                // a FramedEdgeList...");
                                int size = ((FramedEdgeList<?>) result).size();
                                result = ((FramedEdgeList<?>) result).subList(getStart(), (end > size ? size : end));
                            } else if (result instanceof FramedVertexList) {
                                int size = ((FramedVertexList<?>) result).size();
                                result = ((FramedVertexList<?>) result).subList(getStart(), (end > size ? size : end));
                            } else if (result instanceof DEdgeEntryList) {
                                // System.out.println("TEMP DEBUG Sublisting
                                // a DEdgeEntryList...");
                                int size = ((DEdgeEntryList) result).size();
                                result = ((DEdgeEntryList) result).subList(getStart(), (end > size ? size : end));
                            }
                        } else {
                            if (result instanceof FramedEdgeList) {
                                result = ((FramedEdgeList<?>) result).subList(getStart(), ((FramedEdgeList<?>) result).size());
                            } else if (result instanceof FramedVertexList) {
                                result = ((FramedVertexList<?>) result).subList(getStart(), ((FramedVertexList<?>) result).size());
                            } else if (result instanceof DEdgeEntryList) {
                                // System.out.println("TEMP DEBUG Sublisting
                                // a DEdgeEntryList...");
                                result = ((DEdgeEntryList) result).subList(getStart() + 1, ((DEdgeEntryList) result).size());
                            }
                        }
                    }
                    // }
                    if (result instanceof FramedVertexList) {
                        ParamMap listMap = new ParamMap();
                        if (getIncludeEdges()) {
                            listMap.put(Parameters.EDGES, EMPTY_STRINGS);
                        }
                        if (getIncludeCounts()) {
                            listMap.put(Parameters.COUNTS, EMPTY_STRINGS);
                        }
                        listMap.put(Parameters.PROPS, CaseInsensitiveString.toStrings(this.getProperties()));
                        listMap.put(Parameters.HIDEPROPS, CaseInsensitiveString.toStrings(this.getHideProperties()));
                        result = new JsonFrameListAdapter(getGraph(), (FramedVertexList<?>) result, listMap, isCollectionRoute_);
                    }
                }
            } else {
            // NTF actually, this is a perfectly normal outcome.
            // System.err.println("No edge method found for label " +
            // label + " in a VertexFrame of type "
            // + DGraphUtils.findInterface(frame) + " with id "
            // + ((VertexFrame) frame).asVertex().getId());
            }
        } else {
            // System.out.println("TEMP DEBUG finding property " + key);
            Method crystal = getGetters().get(key);
            if (crystal != null) {
                try {
                    result = crystal.invoke(frame, (Object[]) null);
                } catch (UserAccessException uae) {
                    throw uae;
                } catch (Throwable t) {
                    if (frame instanceof EdgeFrame) {
                        result = ((EdgeFrame) frame).asEdge().getProperty(paramKey);
                    } else if (frame instanceof VertexFrame) {
                        result = ((VertexFrame) frame).asVertex().getProperty(paramKey);
                    } else {
                        System.err.println("Trying to get property " + paramKey + " from an object " + frame.getClass().getName());
                    }
                }
            } else {
                if (frame instanceof ViewVertex.Contains) {
                    result = ((EdgeFrame) frame).asEdge().getProperty(paramKey);
                } else if (frame instanceof VertexFrame) {
                    result = ((VertexFrame) frame).asVertex().getProperty(paramKey);
                } else if (frame instanceof EdgeFrame) {
                    result = ((EdgeFrame) frame).asEdge().getProperty(paramKey);
                } else {
                    System.err.println("No method found for key " + paramKey);
                }
            }
        }
    } else {
        System.err.println("Unable to get property " + paramKey + " on a null object");
    }
    return result;
}
Also used : ParamMap(org.openntf.domino.rest.service.Parameters.ParamMap) ArrayList(java.util.ArrayList) CaseInsensitiveString(org.openntf.domino.types.CaseInsensitiveString) Document(org.openntf.domino.Document) LinkedHashMap(java.util.LinkedHashMap) DbInfoVertex(org.openntf.domino.graph2.builtin.DbInfoVertex) Database(org.openntf.domino.Database) FramedEdgeList(org.openntf.domino.graph2.annotations.FramedEdgeList) ArrayList(java.util.ArrayList) DEdgeEntryList(org.openntf.domino.graph2.impl.DEdgeEntryList) DEdgeList(org.openntf.domino.graph2.DEdgeList) DVertexList(org.openntf.domino.graph2.impl.DVertexList) FramedVertexList(org.openntf.domino.graph2.annotations.FramedVertexList) List(java.util.List) DEdgeList(org.openntf.domino.graph2.DEdgeList) DProxyVertex(org.openntf.domino.graph2.impl.DProxyVertex) Optional(java.util.Optional) DVertex(org.openntf.domino.graph2.impl.DVertex) Method(java.lang.reflect.Method) FramedEdgeList(org.openntf.domino.graph2.annotations.FramedEdgeList) UserAccessException(org.openntf.domino.exceptions.UserAccessException) CaseInsensitiveString(org.openntf.domino.types.CaseInsensitiveString) JsonJavaObject(com.ibm.commons.util.io.json.JsonJavaObject) JsonObject(com.ibm.commons.util.io.json.JsonObject) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) ParamMap(org.openntf.domino.rest.service.Parameters.ParamMap) ViewVertex(org.openntf.domino.graph2.builtin.ViewVertex) DVertex(org.openntf.domino.graph2.impl.DVertex) Vertex(com.tinkerpop.blueprints.Vertex) DbInfoVertex(org.openntf.domino.graph2.builtin.DbInfoVertex) DProxyVertex(org.openntf.domino.graph2.impl.DProxyVertex) Set(java.util.Set) ViewColumn(org.openntf.domino.ViewColumn) FramedVertexList(org.openntf.domino.graph2.annotations.FramedVertexList) ViewVertex(org.openntf.domino.graph2.builtin.ViewVertex) DVertexList(org.openntf.domino.graph2.impl.DVertexList) EdgeFrame(com.tinkerpop.frames.EdgeFrame) DEdgeFrame(org.openntf.domino.graph2.builtin.DEdgeFrame) View(org.openntf.domino.View) Date(java.util.Date) UserAccessException(org.openntf.domino.exceptions.UserAccessException) DVertexFrame(org.openntf.domino.graph2.builtin.DVertexFrame) VertexFrame(com.tinkerpop.frames.VertexFrame) DEdgeEntryList(org.openntf.domino.graph2.impl.DEdgeEntryList) DocumentBackupContributor(org.openntf.domino.contributor.DocumentBackupContributor) DEdge(org.openntf.domino.graph2.impl.DEdge) Edge(com.tinkerpop.blueprints.Edge) DEdge(org.openntf.domino.graph2.impl.DEdge) Session(org.openntf.domino.Session)

Example 8 with DEdge

use of org.openntf.domino.graph2.impl.DEdge in project org.openntf.domino by OpenNTF.

the class JsonFrameAdapter method toVertexFrame.

public static VertexFrame toVertexFrame(final DFramedTransactionalGraph graph, final Edge edge, final Vertex source) {
    VertexFrame result = null;
    Vertex other = null;
    if (edge instanceof DEdge) {
        try {
            other = ((DEdge) edge).getOtherVertex(source);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    } else {
        System.out.println("TEMP DEBUG edge is actually a " + edge.getClass().getName());
    }
    result = (VertexFrame) graph.frame(other, null);
    return result;
}
Also used : ViewVertex(org.openntf.domino.graph2.builtin.ViewVertex) DVertex(org.openntf.domino.graph2.impl.DVertex) Vertex(com.tinkerpop.blueprints.Vertex) DbInfoVertex(org.openntf.domino.graph2.builtin.DbInfoVertex) DProxyVertex(org.openntf.domino.graph2.impl.DProxyVertex) DVertexFrame(org.openntf.domino.graph2.builtin.DVertexFrame) VertexFrame(com.tinkerpop.frames.VertexFrame) DEdge(org.openntf.domino.graph2.impl.DEdge)

Example 9 with DEdge

use of org.openntf.domino.graph2.impl.DEdge in project org.openntf.domino by OpenNTF.

the class DFramedTransactionalGraph method addEdge.

// public <F> F addEdge(final Object id, final Vertex outVertex, final Vertex inVertex, final String label) {
// return (F) super.addEdge(id, outVertex, inVertex, label);
// }
@Override
public <F> F addEdge(final Object id, final Vertex outVertex, final Vertex inVertex, final String label, final Direction direction, final Class<F> kind) {
    if (id != null && id instanceof NoteCoordinate) {
        Object cacheChk = getElement(id, kind);
        if (cacheChk != null) {
            return (F) cacheChk;
        }
    }
    DGraph base = (DGraph) this.getBaseGraph();
    org.openntf.domino.graph2.DElementStore store = null;
    if (id instanceof NoteCoordinate) {
        store = base.findElementStore(id);
    } else {
        String typeid = getTypedId(id);
        if (typeid == null) {
            store = base.findElementStore(kind);
        } else {
            store = base.findElementStore(typeid);
        }
    }
    Edge edge = store.addEdge(id);
    ((DEdge) edge).setLabel(label);
    ((DEdge) edge).setInVertex(inVertex);
    ((DEdge) edge).setOutVertex(outVertex);
    F result = frame(edge, kind);
    getFramedElementCache().put(edge.getId(), result);
    return result;
}
Also used : NoteCoordinate(org.openntf.domino.big.NoteCoordinate) CaseInsensitiveString(org.openntf.domino.types.CaseInsensitiveString) Edge(com.tinkerpop.blueprints.Edge) DElementStore(org.openntf.domino.graph2.DElementStore)

Example 10 with DEdge

use of org.openntf.domino.graph2.impl.DEdge in project org.openntf.domino by OpenNTF.

the class JsonSearchAdapter method toVertexFrame.

public static VertexFrame toVertexFrame(final DFramedTransactionalGraph graph, final Edge edge, final Vertex source) {
    VertexFrame result = null;
    Vertex other = null;
    if (edge instanceof DEdge) {
        try {
            other = ((DEdge) edge).getOtherVertex(source);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    } else {
        System.out.println("TEMP DEBUG edge is actually a " + edge.getClass().getName());
    }
    result = (VertexFrame) graph.frame(other, null);
    return result;
}
Also used : ViewVertex(org.openntf.domino.graph2.builtin.ViewVertex) DVertex(org.openntf.domino.graph2.impl.DVertex) Vertex(com.tinkerpop.blueprints.Vertex) DbInfoVertex(org.openntf.domino.graph2.builtin.DbInfoVertex) DProxyVertex(org.openntf.domino.graph2.impl.DProxyVertex) DVertexFrame(org.openntf.domino.graph2.builtin.DVertexFrame) VertexFrame(com.tinkerpop.frames.VertexFrame) DEdge(org.openntf.domino.graph2.impl.DEdge)

Aggregations

Vertex (com.tinkerpop.blueprints.Vertex)10 DbInfoVertex (org.openntf.domino.graph2.builtin.DbInfoVertex)9 ViewVertex (org.openntf.domino.graph2.builtin.ViewVertex)9 Edge (com.tinkerpop.blueprints.Edge)7 DVertexFrame (org.openntf.domino.graph2.builtin.DVertexFrame)7 DEdge (org.openntf.domino.graph2.impl.DEdge)7 VertexFrame (com.tinkerpop.frames.VertexFrame)6 ArrayList (java.util.ArrayList)6 DVertex (org.openntf.domino.graph2.impl.DVertex)6 CaseInsensitiveString (org.openntf.domino.types.CaseInsensitiveString)6 DProxyVertex (org.openntf.domino.graph2.impl.DProxyVertex)5 JsonJavaObject (com.ibm.commons.util.io.json.JsonJavaObject)4 JsonObject (com.ibm.commons.util.io.json.JsonObject)4 EdgeFrame (com.tinkerpop.frames.EdgeFrame)4 DEdgeFrame (org.openntf.domino.graph2.builtin.DEdgeFrame)4 List (java.util.List)3 FramedVertexList (org.openntf.domino.graph2.annotations.FramedVertexList)3 CategoryVertex (org.openntf.domino.graph2.builtin.CategoryVertex)3 Method (java.lang.reflect.Method)2 HashMap (java.util.HashMap)2