annotate artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java @ 315:03e508e57b85

Generate kill events if and only if there were killed collections or artifacts. artifacts/trunk@2448 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 02 Aug 2011 11:41:11 +0000
parents 942a54670a72
children ec5c7e54cae1
rev   line source
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 /*
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2 * Copyright (c) 2011 by Intevation GmbH
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 * Read the file LGPL.txt coming with the software for details
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 package de.intevation.artifactdatabase;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import java.io.IOException;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.io.OutputStream;
207
b2115f484edb Move Config and XMLUtils totally to commons package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 170
diff changeset
12
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import java.util.ArrayList;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import java.util.Date;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import java.util.HashMap;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import java.util.List;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import java.util.Map;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import org.apache.log4j.Logger;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import org.w3c.dom.Document;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import de.intevation.artifacts.Artifact;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import de.intevation.artifacts.ArtifactCollection;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import de.intevation.artifacts.ArtifactCollectionFactory;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 import de.intevation.artifacts.CallContext;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import de.intevation.artifacts.User;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
218
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
29 import de.intevation.artifacts.common.utils.XMLUtils;
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
30
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 * Trivial implementation of an artifact collection. Useful to be subclassed.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 public class DefaultArtifactCollection
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 implements ArtifactCollection
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 /** The logger used in this class.*/
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 private static Logger logger =
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 Logger.getLogger(DefaultArtifactCollection.class);
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 * The identifier of the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 protected String identifier;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 /**
159
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
49 * The identifier of the collection.
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
50 */
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
51 protected String name;
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
52
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
53 /**
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 * The owner of this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 protected User user;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 /**
221
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
59 * The attribute of this collection.
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
60 */
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
61 protected Document attribute;
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
62
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
63 /**
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 * The artifacts stored in this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 protected List<Artifact> artifacts;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 * The attributes used for the artifacts stored in this collection. The key
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 * of this map represents the identifier of the artifact which the attribute
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 * belong to.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 protected Map<String, Document> attributes;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 /** The creation time of this collection.*/
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 protected Date creationTime;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
281
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
78 protected long ttl;
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
79
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 * Default constructor.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 public DefaultArtifactCollection() {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 * When created by a factory this method is called to
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 * initialize the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 * @param identifier The identifier from collection database
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 * @param factory The factory which created this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 * @param context The global context of the runtime system.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 * @param data The data which can be use to setup a collection with
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 * more details.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 public void setup(
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 String identifier,
170
ac0f8bd97277 Fix parameter propagation of creation time ond collection names.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 159
diff changeset
99 String name,
ac0f8bd97277 Fix parameter propagation of creation time ond collection names.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 159
diff changeset
100 Date creationTime,
281
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
101 long ttl,
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 ArtifactCollectionFactory factory,
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 Object context,
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 Document data)
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 logger.debug("DefaultArtifactCollection.setup: " + identifier);
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 artifacts = new ArrayList<Artifact>();
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 attributes = new HashMap<String, Document>();
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 setIdentifier(identifier);
170
ac0f8bd97277 Fix parameter propagation of creation time ond collection names.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 159
diff changeset
112 setName(name);
ac0f8bd97277 Fix parameter propagation of creation time ond collection names.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 159
diff changeset
113 setCreationTime(creationTime);
281
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
114 setTTL(ttl);
221
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
115 setAttribute(data);
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118
218
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
119 public Document describe(CallContext context) {
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
120 logger.debug("DefaultArtifactCollection.describe: " + identifier);
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
121
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
122 return XMLUtils.newDocument();
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
123 }
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
124
70cbbe144931 Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 207
diff changeset
125
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 * Set a new identifier for this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 * @param identifier New identifier for this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 public void setIdentifier(String identifier) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 this.identifier = identifier;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 * Identify this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 * @return Returns unique string to identify this collection globally.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 public String identifier() {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 return identifier;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 /**
159
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
145 * Name of this collection.
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
146 * @return Returns the name of this collection
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
147 */
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
148 public String getName() {
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
149 return name;
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
150 }
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
151
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
152 /**
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
153 * Name of this collection.
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
154 * @return Returns the name of this collection
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
155 */
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
156 public void setName(String name) {
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
157 this.name = name;
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
158 }
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
159
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
160
db0d20440b92 Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 119
diff changeset
161 /**
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 * Set a new owner of this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 * @param user New owner for this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 public void setUser(User user) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 this.user = user;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 * Identify the owner of the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 * @return Returns owner of the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 public User getUser() {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 return user;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 * Returns the creation time of the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 * @return the creation time of the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184 public Date getCreationTime() {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 return creationTime;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 * Sets the creation time of the collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 * @param creationTime The new creation time.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 public void setCreationTime(Date creationTime) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195 this.creationTime = creationTime;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198
281
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
199 public long getTTL() {
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
200 return ttl;
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
201 }
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
202
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
203
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
204 public void setTTL(long ttl) {
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
205 this.ttl = ttl;
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
206 }
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
207
942a54670a72 Made the TTL of a Collection retrievable via getter method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 269
diff changeset
208
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
209 /**
221
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
210 * Returns the attribute of the collection.
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
211 *
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
212 * @return the attribute of the collection.
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
213 */
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
214 public Document getAttribute() {
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
215 return attribute;
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
216 }
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
217
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
218
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
219 /**
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
220 * Sets the attribute of the collection.
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
221 *
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
222 * @param attribute The attribute of this collection.
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
223 */
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
224 public void setAttribute(Document attribute) {
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
225 this.attribute = attribute;
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
226 }
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
227
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
228
f75f83af19e0 Made the 'attribute' document of an ArtifactCollection accessible with getter and setter methods.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 218
diff changeset
229 /**
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
230 * Called from artifact database when an artifact is
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
231 * going to be removed from system.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
232 * @param context The global context of the runtime system.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
233 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
234 public void endOfLife(Object context) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
235 logger.debug("DefaultArtifactCollection.endOfLife");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
236 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
237
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
238
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
239 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
240 * Internal hash of this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
241 * @return Returns hash that should stay the same if the internal
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
242 * value has not changed. Useful for caching
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
243 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
244 public String hash() {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
245 logger.debug("DefaultArtifactCollection.hash");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
246
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
247 return String.valueOf(hashCode());
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
248 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
249
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
250
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
251 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
252 * Called from artifact database before an artifact is
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
253 * going to be exported as xml document.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
254 * @param context The global context of the runtime system.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
255 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
256 public void cleanup(Object context) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
257 logger.debug("DefaultArtifactCollection.cleanup");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
258 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
259
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
260
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
261 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
262 * Adds a new artifact to this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
263 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
264 * @param artifact The new artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
265 * @param attribute The attributes used for this artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
266 * @param context The CallContext.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
267 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
268 public void addArtifact(
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
269 Artifact artifact,
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
270 Document attribute,
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
271 CallContext context)
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
272 {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
273 logger.debug("DefaultArtifactCollection.addArtifact");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
274
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275 artifacts.add(artifact);
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
276 attributes.put(artifact.identifier(), attribute);
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
277 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
278
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
279
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
280 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
281 * Removes the given artifact from this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
282 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
283 * @param artifact The artifact that should be removed.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
284 * @param context The CallContext.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
285 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
286 public void removeArtifact(Artifact artifact, CallContext context) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
287 logger.debug("DefaultArtifactCollection.removeArtifact");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
288
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
289 if (artifact == null) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
290 return;
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
291 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
292
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
293 artifacts.remove(artifact);
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
294 attributes.remove(artifact.identifier());
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
295 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
296
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
297
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
298 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
299 * Returns a list of artifacts that are stored in this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
300 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
301 * @param context The CallContext.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
302 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
303 * @return the list of artifacts stored in this collection.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
304 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
305 public Artifact[] getArtifacts(CallContext context) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
306 logger.debug("DefaultArtifactCollection.getArtifacts");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
307
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
308 return (Artifact[]) artifacts.toArray();
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
309 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
310
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
311
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
312 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
313 * Returns the attribute document for the given artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
314 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
315 * @param artifact The artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
316 * @param context The CallContext.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
317 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
318 * @return a document that contains the attributes of the artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
319 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
320 public Document getAttribute(Artifact artifact, CallContext context) {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
321 logger.debug("DefaultArtifactCollection.getAttribute");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
322
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
323 return attributes.get(artifact.identifier());
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
324 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
325
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
326
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
327 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
328 * Set the attribute for the given artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
329 *
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
330 * @param artifact The artifact of the attribute.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
331 * @param document The new attribute of the artifact.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
332 * @param context The CallContext.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
333 */
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
334 public void setAttribute(
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
335 Artifact artifact,
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
336 Document document,
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
337 CallContext context)
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
338 {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
339 logger.debug("DefaultArtifactCollection.setAttribute");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
340
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
341 attributes.put(artifact.identifier(), document);
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
342 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
343
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
344
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
345 /**
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
346 * Produce output for this collection.
269
d9a99b28a847 Added support for the 'type' parameter of artifacts and collections out() call.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 221
diff changeset
347 * @param type Specifies the output type.
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
348 * @param format Specifies the format of the output.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
349 * @param out Stream to write the result data to.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
350 * @param context The global context of the runtime system.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
351 * @throws IOException Thrown if an I/O occurs.
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
352 */
269
d9a99b28a847 Added support for the 'type' parameter of artifacts and collections out() call.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 221
diff changeset
353 public void out(
d9a99b28a847 Added support for the 'type' parameter of artifacts and collections out() call.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 221
diff changeset
354 String type,
d9a99b28a847 Added support for the 'type' parameter of artifacts and collections out() call.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 221
diff changeset
355 Document format,
d9a99b28a847 Added support for the 'type' parameter of artifacts and collections out() call.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 221
diff changeset
356 OutputStream out,
d9a99b28a847 Added support for the 'type' parameter of artifacts and collections out() call.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 221
diff changeset
357 CallContext context)
119
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
358 throws IOException
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
359 {
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
360 logger.debug("DefaultArtifactCollection.out");
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
361 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
362 }
3bb121d5b0b7 Added a default implementation of an ArtifactCollection and a User.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
363 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org