Package org.eclipse.gef.graph

# Class GraphCopier

java.lang.Object
org.eclipse.gef.graph.GraphCopier

public class GraphCopier extends Object
A copier for `graphs`. After a graph was copied, the copier can be queried for the mappings of input nodes to output nodes and input edges to output edges. A copier is a stateful utility.

## Constructor Summary

Constructors
Constructor
Description
`GraphCopier(org.eclipse.gef.common.attributes.IAttributeCopier attributeCopier)`
Creates a new `GraphCopier` instance with the given `IAttributeCopier`.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`clearInputToOutputMaps()`
Discard any data that was tracked in previous copy operations.
`Graph`
`copy(Graph graph)`
Creates a copy of the given `Graph`.
`protected void`
`copyAttributes(org.eclipse.gef.common.attributes.IAttributeStore inputStore, org.eclipse.gef.common.attributes.IAttributeStore outputStore)`
Transfers attributes from the given input `Graph`, `Node`, or `Edge` to the given output `Graph`, `Node`, or `Edge`.
`protected Edge`
`copyEdge(Edge edge)`
Creates a copy of the given edge.
`protected void`
`copyEdges(Graph graph, Graph outputGraph)`
Copies all the edges of the given graph into the output graph.
`protected Graph`
`copyGraph(Graph graph)`
Copies the given `Graph` using the current `IAttributeCopier`.
`protected Node`
`copyNode(Node node)`
Creates a copy of the given node.
`protected void`
`copyNodes(Graph graph, Graph outputGraph)`
Copies all the nodes of the given graph into the output graph.
`org.eclipse.gef.common.attributes.IAttributeCopier`
`getAttributeCopier()`
Returns the `IAttributeCopier` used by this `GraphCopier`.
`Map<Edge,Edge>`
`getInputToOutputEdgeMap()`
Returns an (unmodifiable) `Map` from input `Edge`s to output `Edge`s.
`Map<Node,Node>`
`getInputToOutputNodeMap()`
Returns an (unmodifiable) `Map` from input `Node`s to output `Node`s.
`protected void`
`trackCopiedEdge(Edge inputEdge, Edge outputEdge)`
Maintains a mapping from the input edge to the output edge.
`protected void`
`trackCopiedNode(Node inputNode, Node outputNode)`
Maintains a mapping from the input node to the output node.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### GraphCopier

public GraphCopier(org.eclipse.gef.common.attributes.IAttributeCopier attributeCopier)
Creates a new `GraphCopier` instance with the given `IAttributeCopier`.

Parameters:
  `attributeCopier` - The `IAttributeCopier` used to copy the attributes of `Graph`, `Node`s, and `Edge`s.

## Method Details

### clearInputToOutputMaps

protected void clearInputToOutputMaps()
Discard any data that was tracked in previous copy operations.

Since:
  5.1

### copy

public Graph copy(Graph graph)
Creates a copy of the given `Graph`.

Parameters:
  `graph` - The Graph to copy.
Returns:
  A new graph that is the result of the copy operation.

### copyAttributes

protected void copyAttributes(org.eclipse.gef.common.attributes.IAttributeStore inputStore, org.eclipse.gef.common.attributes.IAttributeStore outputStore)
Transfers attributes from the given input `Graph`, `Node`, or `Edge` to the given output `Graph`, `Node`, or `Edge`. The attributes may be copied or simply transferred. This lies within the responsibility of the `IAttributeCopier` that was passed in on construction of the `GraphCopier`.

Parameters:
  `inputStore` - The `Graph`, `Node`, or `Edge` from which to copy attributes.
  `outputStore` - The `Graph`, `Node`, or `Edge` to copy attributes to.

### copyEdge

protected Edge copyEdge(Edge edge)
Creates a copy of the given edge.

Parameters:
  `edge` - The Edge to copy.
Returns:
  A new `Edge` with transferred relations and (copied) attributes.

### copyEdges

protected void copyEdges(Graph graph, Graph outputGraph)
Copies all the edges of the given graph into the output graph.

Parameters:
  `graph` - The input `Graph` to copy.
  `outputGraph` - The output Graph.
Since:
  5.1

### copyGraph

protected Graph copyGraph(Graph graph)
Copies the given `Graph` using the current `IAttributeCopier`. Records the copied nodes in the `getInputToOutputNodeMap()` and the copied edges in the `getInputToOutputEdgeMap()`.

Parameters:
  `graph` - The input `Graph` to copy.
Returns:
  The copied result `Graph`.

### copyNode

protected Node copyNode(Node node)
Creates a copy of the given node.

Parameters:
  `node` - The `Node` to copy.
Returns:
  A new Node with transferred relations and (copied) attributes.

### copyNodes

protected void copyNodes(Graph graph, Graph outputGraph)
Copies all the nodes of the given graph into the output graph.

Parameters:
  `graph` - The input `Graph` to copy.
  `outputGraph` - The output Graph.
Since:
  5.1

### getAttributeCopier

public org.eclipse.gef.common.attributes.IAttributeCopier getAttributeCopier()
Returns the `IAttributeCopier` used by this `GraphCopier`.

Returns:
  The `IAttributeCopier` used by this `GraphCopier`.

### getInputToOutputEdgeMap

public Map<Edge,Edge> getInputToOutputEdgeMap()
Returns an (unmodifiable) `Map` from input `Edge`s to output `Edge`s.

Returns:
  An (unmodifiable) `Map` from input `Edge`s to output `Edge`s.

### getInputToOutputNodeMap

public Map<Node,Node> getInputToOutputNodeMap()
Returns an (unmodifiable) `Map` from input `Node`s to output `Node`s.

Returns:
  An (unmodifiable) `Map` from input `Node`s to output `Node`s.

### trackCopiedEdge

protected void trackCopiedEdge(Edge inputEdge, Edge outputEdge)
Maintains a mapping from the input edge to the output edge.

Parameters:
  `inputEdge` - the input edge.
  `outputEdge` - the output edge.
Since:
  5.1

### trackCopiedNode

protected void trackCopiedNode(Node inputNode, Node outputNode)
Maintains a mapping from the input node to the output node.

Parameters:
  `inputNode` - the input node.
  `outputNode` - the output node.
Since:
  5.1