From 353afd98c60b103d396b58f73ee5f9b7a978d7c5 Mon Sep 17 00:00:00 2001 From: "kristin.polenz" Date: Tue, 19 Oct 2010 19:24:38 +0000 Subject: [PATCH] Changed method getArtifactLinks and addArtifactLinks and return type of these. --- .../java/org/activiti/cycle/CycleService.java | 10 +-- .../impl/db/CycleServiceDbXStreamImpl.java | 67 ++++++++++++++----- .../cycle/impl/db/DummyBaseCycleService.java | 12 ++-- 3 files changed, 63 insertions(+), 26 deletions(-) diff --git a/modules/activiti-cycle/src/main/java/org/activiti/cycle/CycleService.java b/modules/activiti-cycle/src/main/java/org/activiti/cycle/CycleService.java index 5c9a26aa45..9bea880bd5 100644 --- a/modules/activiti-cycle/src/main/java/org/activiti/cycle/CycleService.java +++ b/modules/activiti-cycle/src/main/java/org/activiti/cycle/CycleService.java @@ -37,12 +37,12 @@ public interface CycleService { /** * add given link to Cycle */ - public void addLink(Artifact link); + public void addLink(RepositoryArtifactLink link); - public List getArtifactLinks(String sourceArtifactId); - public List getArtifactLinks(String sourceArtifactId, Long sourceRevision); - public List getArtifactLinks(String sourceArtifactId, String type); - public List getArtifactLinks(String sourceArtifactId, Long sourceRevision, String type); + public List getArtifactLinks(String sourceArtifactId); + public List getArtifactLinks(String sourceArtifactId, Long sourceRevision); + public List getArtifactLinks(String sourceArtifactId, String type); + public List getArtifactLinks(String sourceArtifactId, Long sourceRevision, String type); public void deleteLink(long linkId); diff --git a/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/CycleServiceDbXStreamImpl.java b/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/CycleServiceDbXStreamImpl.java index 62d69018d3..82a8c6d1c7 100644 --- a/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/CycleServiceDbXStreamImpl.java +++ b/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/CycleServiceDbXStreamImpl.java @@ -3,19 +3,19 @@ package org.activiti.cycle.impl.db; import java.io.File; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpSession; -import org.activiti.cycle.ArtifactRevision; import org.activiti.cycle.Cycle; import org.activiti.cycle.CycleConfig; -import org.activiti.cycle.Artifact; import org.activiti.cycle.CycleLink; import org.activiti.cycle.CycleService; +import org.activiti.cycle.RepositoryArtifact; +import org.activiti.cycle.RepositoryArtifactLink; import org.activiti.cycle.RepositoryConnector; import org.activiti.cycle.RepositoryException; +import org.activiti.cycle.impl.RepositoryArtifactLinkImpl; import org.activiti.cycle.impl.conf.ConfigurationContainer; import org.activiti.cycle.impl.conf.CycleDbSqlSessionFactory; import org.activiti.cycle.impl.connector.demo.DemoConnectorConfiguration; @@ -41,6 +41,7 @@ public class CycleServiceDbXStreamImpl extends DummyBaseCycleService implements private XStream xStream = new XStream(); private String processEngineName = null; + private static Long DEFAULT_REVISION = new Long(0); private static String DEFAULT_ENGINE = "DEFAULT_PROCESS_ENGINE"; private static HashMap dbFactories = new HashMap(); @@ -144,35 +145,71 @@ public class CycleServiceDbXStreamImpl extends DummyBaseCycleService implements return (ConfigurationContainer) configXML; } + /** + * + * Should be the parameter connectorId and artifactId or is the sourceArtifactId parameter composed of + * connectorId and artifactId?? + * If yes, how can I split the sourceArtifactId in connectorId and artifactId? Only with String-Operation? + */ @Override public void addArtifactLink(String sourceArtifactId, String targetArtifactId) { SqlSessionFactory sqlMapper = getSessionFactory(); - //TODO: select before insert! check, if sourceArtifact exists as Artifact object in datbabase. - Artifact artifact = new Artifact(); - artifact.setId(sourceArtifactId); - - CycleLink cycleLink = new CycleLink(); - cycleLink.setSourceArtifact(artifact); - cycleLink.setId(targetArtifactId); + CycleLink link = new CycleLink(); +// link.setSourceConnectorId(sourceConnectorId); +// link.setTargetConnectorId(targetConnectorId); + link.setSourceArtifactId(sourceArtifactId); + link.setTargetArtifactId(targetArtifactId); SqlSession session = sqlMapper.openSession(); - session.insert("org.activiti.cycle.CycleLink.insertCycleLink", cycleLink); + session.insert("org.activiti.cycle.CycleLink.insertCycleLink", link); session.commit(); } + /** + * Should be the parameter connectorId and artifactId or is the sourceArtifactId parameter composed of + * connectorId and artifactId?? + * If yes, how can I split the sourceArtifactId in connectorId and artifactId? Only with String-Operation? + */ @Override - public List getArtifactLinks(String sourceArtifactId) { + public List getArtifactLinks(String sourceArtifactId) { + + List repositoryArtifactLinkList = new ArrayList(); SqlSessionFactory sqlMapper = getSessionFactory(); SqlSession session = sqlMapper.openSession(); try { - List artifactResultList = session.selectList( - "org.activiti.cycle.Artifact.selectArtifact", sourceArtifactId); - return artifactResultList; + List linkResultList = session.selectList( + "org.activiti.cycle.CycleLink.selectArtifactLinkForSourceArtifact", sourceArtifactId); + + if (linkResultList != null && !linkResultList.isEmpty()) { + for (CycleLink cycleLink : linkResultList) { + RepositoryArtifactLink repositoryArtifactLink = new RepositoryArtifactLinkImpl(); + repositoryArtifactLink.setId(cycleLink.getId()); + repositoryArtifactLink.setSourceElementId(cycleLink.getSourceElementId()); + repositoryArtifactLink.setTargetElementId(cycleLink.getTargetElementId()); + repositoryArtifactLink.setSourceElementName(cycleLink.getSourceElementName()); + repositoryArtifactLink.setTargetElementName(cycleLink.getTargetElementName()); + repositoryArtifactLink.setSourceRevision(cycleLink.getSourceRevision()); + repositoryArtifactLink.setTargetRevision(cycleLink.getTargetRevision()); + repositoryArtifactLink.setDescription(cycleLink.getDescription()); + repositoryArtifactLink.setLinkType(cycleLink.getLinkType()); + repositoryArtifactLink.setLinkedBothWays(cycleLink.isLinkedBothWays()); + + //TODO: How can I get the connector to create a new RepositoryArtifact? +// RepositoryArtifact sourceRepositoryArtifact = new RepositoryArtifactLinkImpl(cycleLink.getSourceConnectorId(), cycleLink.getSourceArtifactId(), ); +// RepositoryArtifact targetRepositoryArtifact = new RepositoryArtifactLinkImpl(cycleLink.getTargetConnectorId(), cycleLink.getTargetArtifactId(), ); +// repositoryArtifactLink.setSourceArtifactId(sourceRepositoryArtifact); +// repositoryArtifactLink.setTargetArtifactId(targetRepositoryArtifact); + + repositoryArtifactLinkList.add(repositoryArtifactLink); + } + } + + return repositoryArtifactLinkList; } finally { session.close(); } diff --git a/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/DummyBaseCycleService.java b/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/DummyBaseCycleService.java index b9c102bb76..b1ffb3f97f 100644 --- a/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/DummyBaseCycleService.java +++ b/modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/db/DummyBaseCycleService.java @@ -2,9 +2,9 @@ package org.activiti.cycle.impl.db; import java.util.List; -import org.activiti.cycle.Artifact; import org.activiti.cycle.CycleService; import org.activiti.cycle.CycleTag; +import org.activiti.cycle.RepositoryArtifactLink; import org.activiti.cycle.RepositoryNodeNotFoundException; import org.activiti.cycle.impl.connector.demo.DemoConnector; @@ -18,7 +18,7 @@ public abstract class DummyBaseCycleService implements CycleService { public void addArtifactLink(String sourceArtifactId, String targetArtifactId) { } - public void addLink(Artifact link) { + public void addLink(RepositoryArtifactLink link) { } public void addTag(String nodeId, String tagName) { @@ -41,19 +41,19 @@ public abstract class DummyBaseCycleService implements CycleService { return null; } - public List getArtifactLinks(String sourceArtifactId) { + public List getArtifactLinks(String sourceArtifactId) { return null; } - public List getArtifactLinks(String sourceArtifactId, Long sourceRevision) { + public List getArtifactLinks(String sourceArtifactId, Long sourceRevision) { return null; } - public List getArtifactLinks(String sourceArtifactId, String type) { + public List getArtifactLinks(String sourceArtifactId, String type) { return null; } - public List getArtifactLinks(String sourceArtifactId, Long sourceRevision, String type) { + public List getArtifactLinks(String sourceArtifactId, Long sourceRevision, String type) { return null; } -- GitLab