X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fsynchronization%2Fgraph%2FGraphCopyAdvisor.java;h=ba112c8cfd13042c39a159817760fc9216c01340;hp=6d3137263ef153552ebd33ad6e71edcb00220ee2;hb=d11fef0101853949671492de5b49ea94892ced78;hpb=969bd23cab98a79ca9101af33334000879fb60c5 diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/GraphCopyAdvisor.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/GraphCopyAdvisor.java index 6d3137263..ba112c8cf 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/GraphCopyAdvisor.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/GraphCopyAdvisor.java @@ -1,162 +1,162 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.diagram.synchronization.graph; - -import java.util.Map; - -import org.simantics.db.Resource; -import org.simantics.db.WriteGraph; -import org.simantics.db.common.utils.Logger; -import org.simantics.db.exception.DatabaseException; -import org.simantics.diagram.synchronization.CopyAdvisor; -import org.simantics.diagram.synchronization.ISynchronizationContext; -import org.simantics.diagram.synchronization.SynchronizationException; - -/** - * @author Tuukka Lehtonen - */ -public abstract class GraphCopyAdvisor implements CopyAdvisor { - - @Override - public final Evaluation canCopy(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer) { - if (!(source instanceof Resource)) - return Evaluation.NOT_SUPPORTED; - -// if (!(sourceContainer instanceof Resource)) -// return Evaluation.NOT_SUPPORTED; -// if (!(targetContainer instanceof Resource)) -// return Evaluation.NOT_SUPPORTED; - - Resource resource = (Resource) source; - Resource sourceCont = (Resource) sourceContainer; - Resource targetCont = (Resource) targetContainer; - - WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); - if (graph == null) - return Evaluation.NOT_SUPPORTED; - - try { - return canCopy(context, graph, resource, sourceCont, targetCont); - } catch (DatabaseException e) { - Logger.defaultLogError(e); - return Evaluation.NOT_SUPPORTED; - } - } - - @Override - public final Object copy(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer) { - - if (!(source instanceof Resource)) - return null; - -// if (!(sourceContainer instanceof Resource)) -// return null; -// if (!(targetContainer instanceof Resource)) -// return null; - - Resource resource = (Resource) source; - Resource sourceCont = (Resource) sourceContainer; - Resource targetCont = (Resource) targetContainer; - - WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); - if (graph == null) - throw new SynchronizationException("no write transaction"); - try { - return copy(context, graph, resource, sourceCont, targetCont); - } catch (DatabaseException e) { - throw new SynchronizationException(e); - } - } - - @Override - public final Object copy(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer, Map map) { - - if (!(source instanceof Resource)) - return null; - -// if (!(sourceContainer instanceof Resource)) -// return null; -// if (!(targetContainer instanceof Resource)) -// return null; - - Resource resource = (Resource) source; - Resource sourceCont = (Resource) sourceContainer; - Resource targetCont = (Resource) targetContainer; - - WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); - if (graph == null) - throw new SynchronizationException("no write transaction"); - try { - return copy(context, graph, resource, sourceCont, targetCont, map); - } catch (DatabaseException e) { - throw new SynchronizationException(e); - } - } - - @Override - public final Object cut(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer) { - - if (!(source instanceof Resource)) - return null; - -// if (!(sourceContainer instanceof Resource)) -// return null; -// if (!(targetContainer instanceof Resource)) -// return null; - - Resource resource = (Resource) source; - Resource sourceCont = (Resource) sourceContainer; - Resource targetCont = (Resource) targetContainer; - - WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); - if (graph == null) - throw new SynchronizationException("no write transaction"); - - try { - return cut(context, graph, resource, sourceCont, targetCont); - } catch (DatabaseException e) { - throw new SynchronizationException(e); - } - } - - @Override - public void onFinish(ISynchronizationContext context) { - - WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); - if (graph == null) - throw new SynchronizationException("no write transaction"); - - try { - onFinish(context, graph); - } catch (DatabaseException e) { - throw new SynchronizationException(e); - } - - } - - public void onFinish(ISynchronizationContext context, WriteGraph graph) throws DatabaseException { - - } - - public abstract Evaluation canCopy(ISynchronizationContext context, WriteGraph graph, Resource source, - Resource sourceContainer, Resource targetContainer) throws DatabaseException; - - public abstract Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, - Resource sourceContainer, Resource targetContainer) throws DatabaseException; - - public abstract Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, - Resource sourceContainer, Resource targetContainer, Map map) throws DatabaseException; - - public abstract Object cut(ISynchronizationContext context, WriteGraph graph, Resource source, - Resource sourceContainer, Resource targetContainer) throws DatabaseException; - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.diagram.synchronization.graph; + +import java.util.Map; + +import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.utils.Logger; +import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.synchronization.CopyAdvisor; +import org.simantics.diagram.synchronization.ISynchronizationContext; +import org.simantics.diagram.synchronization.SynchronizationException; + +/** + * @author Tuukka Lehtonen + */ +public abstract class GraphCopyAdvisor implements CopyAdvisor { + + @Override + public final Evaluation canCopy(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer) { + if (!(source instanceof Resource)) + return Evaluation.NOT_SUPPORTED; + +// if (!(sourceContainer instanceof Resource)) +// return Evaluation.NOT_SUPPORTED; +// if (!(targetContainer instanceof Resource)) +// return Evaluation.NOT_SUPPORTED; + + Resource resource = (Resource) source; + Resource sourceCont = (Resource) sourceContainer; + Resource targetCont = (Resource) targetContainer; + + WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); + if (graph == null) + return Evaluation.NOT_SUPPORTED; + + try { + return canCopy(context, graph, resource, sourceCont, targetCont); + } catch (DatabaseException e) { + Logger.defaultLogError(e); + return Evaluation.NOT_SUPPORTED; + } + } + + @Override + public final Object copy(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer) { + + if (!(source instanceof Resource)) + return null; + +// if (!(sourceContainer instanceof Resource)) +// return null; +// if (!(targetContainer instanceof Resource)) +// return null; + + Resource resource = (Resource) source; + Resource sourceCont = (Resource) sourceContainer; + Resource targetCont = (Resource) targetContainer; + + WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); + if (graph == null) + throw new SynchronizationException("no write transaction"); + try { + return copy(context, graph, resource, sourceCont, targetCont); + } catch (DatabaseException e) { + throw new SynchronizationException(e); + } + } + + @Override + public final Object copy(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer, Map map) { + + if (!(source instanceof Resource)) + return null; + +// if (!(sourceContainer instanceof Resource)) +// return null; +// if (!(targetContainer instanceof Resource)) +// return null; + + Resource resource = (Resource) source; + Resource sourceCont = (Resource) sourceContainer; + Resource targetCont = (Resource) targetContainer; + + WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); + if (graph == null) + throw new SynchronizationException("no write transaction"); + try { + return copy(context, graph, resource, sourceCont, targetCont, map); + } catch (DatabaseException e) { + throw new SynchronizationException(e); + } + } + + @Override + public final Object cut(ISynchronizationContext context, Object source, Object sourceContainer, Object targetContainer) { + + if (!(source instanceof Resource)) + return null; + +// if (!(sourceContainer instanceof Resource)) +// return null; +// if (!(targetContainer instanceof Resource)) +// return null; + + Resource resource = (Resource) source; + Resource sourceCont = (Resource) sourceContainer; + Resource targetCont = (Resource) targetContainer; + + WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); + if (graph == null) + throw new SynchronizationException("no write transaction"); + + try { + return cut(context, graph, resource, sourceCont, targetCont); + } catch (DatabaseException e) { + throw new SynchronizationException(e); + } + } + + @Override + public void onFinish(ISynchronizationContext context) { + + WriteGraph graph = context.get(GraphSynchronizationHints.WRITE_TRANSACTION); + if (graph == null) + throw new SynchronizationException("no write transaction"); + + try { + onFinish(context, graph); + } catch (DatabaseException e) { + throw new SynchronizationException(e); + } + + } + + public void onFinish(ISynchronizationContext context, WriteGraph graph) throws DatabaseException { + + } + + public abstract Evaluation canCopy(ISynchronizationContext context, WriteGraph graph, Resource source, + Resource sourceContainer, Resource targetContainer) throws DatabaseException; + + public abstract Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, + Resource sourceContainer, Resource targetContainer) throws DatabaseException; + + public abstract Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, + Resource sourceContainer, Resource targetContainer, Map map) throws DatabaseException; + + public abstract Object cut(ISynchronizationContext context, WriteGraph graph, Resource source, + Resource sourceContainer, Resource targetContainer) throws DatabaseException; + +}