/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.workbench.common.stunner.core.graph.impl; import org.jboss.errai.common.client.api.annotations.MapsTo; import org.jboss.errai.common.client.api.annotations.Portable; import org.kie.workbench.common.stunner.core.graph.Graph; import org.kie.workbench.common.stunner.core.graph.Node; import org.kie.workbench.common.stunner.core.graph.store.GraphNodeStore; import org.uberfire.commons.validation.PortablePreconditions; @Portable public class GraphImpl<C> extends ElementImpl<C> implements Graph<C, Node> { private final GraphNodeStore<Node> nodeStore; public GraphImpl(final @MapsTo("uuid") String uuid, final @MapsTo("nodeStore") GraphNodeStore<Node> nodeStore) { super(uuid); this.nodeStore = PortablePreconditions.checkNotNull("nodeStore", nodeStore); } @Override public Node addNode(final Node node) { return nodeStore.add(node); } @Override public Node removeNode(final String uuid) { return nodeStore.remove(uuid); } @Override public Node getNode(final String uuid) { return nodeStore.get(uuid); } @Override public Iterable<Node> nodes() { return nodeStore; } @Override public void clear() { nodeStore.clear(); } }