package org.simantics.diagram.handler;
import static org.simantics.diagram.handler.Paster.ComposedCutProcedure.compose;
-import gnu.trove.map.hash.THashMap;
-import gnu.trove.set.hash.THashSet;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
+import java.util.function.BiFunction;
import org.simantics.databoard.Bindings;
import org.simantics.db.ReadGraph;
import org.simantics.db.common.utils.NameUtils;
import org.simantics.db.common.utils.OrderedSetUtils;
import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.Layer0Utils;
import org.simantics.db.layer0.util.RemoverUtil;
import org.simantics.db.request.Write;
import org.simantics.diagram.content.ConnectionUtil;
import org.simantics.structural2.modelingRules.CPTerminal;
import org.simantics.structural2.modelingRules.ConnectionJudgement;
import org.simantics.structural2.modelingRules.IConnectionPoint;
-import org.simantics.utils.datastructures.BinaryFunction;
import org.simantics.utils.datastructures.map.Tuple;
+import gnu.trove.map.hash.THashMap;
+import gnu.trove.set.hash.THashSet;
+
/**
* @author Tuukka Lehtonen
*/
return noParentElementReturnValue;
}
- private void cut() throws Exception {
+ protected void cut() throws Exception {
final GraphLayerManager glm = targetContext.get(GraphSynchronizationHints.GRAPH_LAYER_MANAGER);
final THashSet<Resource> cutElements = new THashSet<Resource>();
* Diagram mapping will have problems and potentially break the
* configuration if the type is not the same as in the source.
*/
- BinaryFunction<StatementEvaluation, ReadGraph, Statement> statementAdvisor =
- new BinaryFunction<StatementEvaluation, ReadGraph, Statement>() {
+ BiFunction<ReadGraph, Statement, StatementEvaluation> statementAdvisor =
+ new BiFunction<ReadGraph, Statement, StatementEvaluation>() {
@Override
- public StatementEvaluation call(ReadGraph graph, Statement stm) {
+ public StatementEvaluation apply(ReadGraph graph, Statement stm) {
if (DIA.HasFlagType.equals(stm.getPredicate()))
return StatementEvaluation.INCLUDE;
return StatementEvaluation.USE_DEFAULT;
}
};
- private void copy() throws Exception {
+ protected void copy() throws Exception {
nodeMap = new NodeMap();
CommonDBUtils.selectClusterSet(graph, targetDiagram);
graph.claim(copy, L0.ConsistsOf, L0.PartOf, relationCopy);
graph.claim(copy, MOD.HasReferenceRelation, MOD.HasReferenceRelation_Inverse, relationCopy);
+ // #7348: renew reference relation GUID identifiers properly
+ Layer0Utils.renewIdentifier(graph, relationCopy);
+ for (Resource invRel : graph.getObjects(relationCopy, L0.ConsistsOf))
+ Layer0Utils.renewIdentifier(graph, invRel);
+
return copy;
}
public NodeMap getNodeMap() {
return nodeMap;
}
-
+
+ protected PasteOperation getOperation() {
+ return op;
+ }
+
+ public WriteGraph getGraph() {
+ return graph;
+ }
}