# HG changeset patch # User Ingo Weinzierl # Date 1269010643 0 # Node ID e9c80fdfee13b90147d4297be78de2aded8846d8 # Parent 8447467cef869cd7d34808cb5ca59e6e4d1f6077 Set new identifiers on artifacts after an artifact import. artifacts/trunk@809 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 8447467cef86 -r e9c80fdfee13 ChangeLog --- a/ChangeLog Fri Mar 19 09:34:40 2010 +0000 +++ b/ChangeLog Fri Mar 19 14:57:23 2010 +0000 @@ -1,3 +1,21 @@ +2010-03-19 Ingo Weinzierl + + Issue208 (Artifact gets a new identifier after being imported) + + * artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a new + method setIdentifier(String identifier). + + * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java: + Default implementation of setIdentifier(String identifier) to give an + artifact a new identifier. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java: + Set a new identifier on an artifact after deserializing it. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java: + Set the identifier of the proxied artifact right after setting its own + identifier. + 2010-03-19 Ingo Weinzierl Issue208 (Artifact import) diff -r 8447467cef86 -r e9c80fdfee13 artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Fri Mar 19 09:34:40 2010 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Fri Mar 19 14:57:23 2010 +0000 @@ -605,6 +605,7 @@ throw new ArtifactDatabaseException(INVALID_ARTIFACT); } + artifact.setIdentifier(backend.newIdentifier()); PersistentArtifact persistentArtifact; try { diff -r 8447467cef86 -r e9c80fdfee13 artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java Fri Mar 19 09:34:40 2010 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java Fri Mar 19 14:57:23 2010 +0000 @@ -23,6 +23,15 @@ public DefaultArtifact() { } + + public void setIdentifier(String identifier) { + if (logger.isDebugEnabled()) { + logger.debug("Change identifier: " + + this.identifier + " -> " + identifier); + } + this.identifier = identifier; + } + public String identifier() { if (logger.isDebugEnabled()) { logger.debug("DefaultArtifact.identifier: " + identifier); diff -r 8447467cef86 -r e9c80fdfee13 artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java Fri Mar 19 09:34:40 2010 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java Fri Mar 19 14:57:23 2010 +0000 @@ -37,6 +37,13 @@ this.proxied = proxied; } + public void setIdentifier(String identifier) { + this.identifier = identifier; + + if (proxied != null) + proxied.setIdentifier(identifier); + } + protected void checkReplacement(CallContext callContext) { Object replacement = callContext.getContextValue(REPLACE_PROXY); if (replacement instanceof Artifact) { diff -r 8447467cef86 -r e9c80fdfee13 artifacts/src/main/java/de/intevation/artifacts/Artifact.java --- a/artifacts/src/main/java/de/intevation/artifacts/Artifact.java Fri Mar 19 09:34:40 2010 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/Artifact.java Fri Mar 19 14:57:23 2010 +0000 @@ -38,6 +38,13 @@ public interface Artifact extends Serializable { + + /** + * Set a new identifier for this artifact. + * @param identifier New identifier for this artifact. + */ + public void setIdentifier(String identifier); + /** * Identify this artifact. * @return Returns unique string to identify this artifact globally.