In This Article
  • Graph
  • Graph

    /**
     * A directed graph consisting of nodes and links.
     */
    export declare class Graph extends GraphObject {
        constructor();
        /**
         * Gets the graph that this object belongs to.
         */
        get owner(): Graph;
        /**
         * Gets the document schema for this object.
         */
        get schema(): GraphSchema;
        /**
         * Gets the collection of links in the graph.
         */
        get links(): GraphLinkCollection;
        /**
         * Gets the collection of nodes in the graph.
         */
        get nodes(): GraphNodeCollection;
        /**
         * Adds a new schema to the graph.
         */
        addSchema(schema: GraphSchema): this;
        /**
         * Copies the schemas from another graph.
         */
        copySchemas(graph: Graph): boolean;
        /**
         * Imports a link (along with its source and target nodes) into the graph.
         */
        importLink(link: GraphLink): GraphLink;
        /**
         * Imports a node into the graph.
         * @param depth The depth of outgoing links to import (default `0`).
         */
        importNode(node: GraphNode, depth?: number): GraphNode;
        /**
         * Clears the links and nodes of the graph.
         */
        clear(): void;
        /**
         * Renames a node.
         * @param newId The new id for the node.
         */
        renameNode(node: GraphNode, newId: string): GraphNode;
        /**
         * Renames a node.
         * @param nodeId The id of the node to rename.
         * @param newId The new id for the node.
         */
        renameNode(nodeId: GraphNodeIdLike, newId: GraphNodeIdLike): GraphNode | undefined;
    }
    

    Examples

    import { Graph } from "graphmodel";
    const graph = new Graph();
    const nodeA = graph.nodes.getOrCreate("nodeA");
    const nodeB = graph.nodes.getOrCreate("nodeB");
    const linkAToB = graph.links.getOrCreate(nodeA, nodeB);
    

    See Also