Mercurial > dive4elements > framework
annotate artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java @ 218:70cbbe144931
Added a describe() method for ArtifactCollections.
artifacts/trunk@1558 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 24 Mar 2011 15:48:26 +0000 |
parents | ac0f8bd97277 |
children | f75f83af19e0 |
rev | line source |
---|---|
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 /* |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 * Copyright (c) 2011 by Intevation GmbH |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 * |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 * This program is free software under the LGPL (>=v2.1) |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 * Read the file LGPL.txt coming with the software for details |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 * or visit http://www.gnu.org/licenses/ if it does not exist. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 package de.intevation.artifacts; |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import org.w3c.dom.Document; |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import java.io.IOException; |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import java.io.OutputStream; |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import java.io.Serializable; |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 |
118
0e0c27bc0b90
Added creation time to collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
116
diff
changeset
|
17 import java.util.Date; |
0e0c27bc0b90
Added creation time to collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
116
diff
changeset
|
18 |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 public interface ArtifactCollection |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 extends Serializable |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 { |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 * Set a new identifier for this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 * @param identifier New identifier for this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 void setIdentifier(String identifier); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 * Identify this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 * @return Returns unique string to identify this collection globally. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 String identifier(); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 |
159
db0d20440b92
Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
118
diff
changeset
|
34 String getName(); |
db0d20440b92
Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
118
diff
changeset
|
35 |
db0d20440b92
Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
118
diff
changeset
|
36 void setName(String name); |
db0d20440b92
Added code to create collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
118
diff
changeset
|
37 |
118
0e0c27bc0b90
Added creation time to collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
116
diff
changeset
|
38 Date getCreationTime(); |
0e0c27bc0b90
Added creation time to collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
116
diff
changeset
|
39 |
0e0c27bc0b90
Added creation time to collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
116
diff
changeset
|
40 void setCreationTime(Date creationTime); |
0e0c27bc0b90
Added creation time to collections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
116
diff
changeset
|
41 |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 * Set a new owner of this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 * @param user New owner for this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 void setUser(User user); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 * Identify the owner of the collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 * @return Returns owner of the collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 User getUser(); // FIXME: Is ArtifactCollectionFactory needed? |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 * When created by a factory this method is called to |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 * initialize the collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 * @param identifier The identifier from collection database |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 * @param factory The factory which created this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 * @param context The global context of the runtime system. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 * @param data The data which can be use to setup a collection with |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 * more details. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 void setup( |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 String identifier, |
170
ac0f8bd97277
Fix parameter propagation of creation time ond collection names.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
159
diff
changeset
|
65 String name, |
ac0f8bd97277
Fix parameter propagation of creation time ond collection names.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
159
diff
changeset
|
66 Date creationTime, |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 ArtifactCollectionFactory factory, |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 Object context, |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 Document data); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 |
218
70cbbe144931
Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
170
diff
changeset
|
71 |
70cbbe144931
Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
170
diff
changeset
|
72 Document describe(CallContext context); |
70cbbe144931
Added a describe() method for ArtifactCollections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
170
diff
changeset
|
73 |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 //TODO: create LifeCycle interface |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
75 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
76 * Called from artifact database when an artifact is |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
77 * going to be removed from system. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 * @param context The global context of the runtime system. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
80 void endOfLife(Object context); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
81 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
82 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 * Internal hash of this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 * @return Returns hash that should stay the same if the internal |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
85 * value has not changed. Useful for caching |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
86 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
87 String hash(); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 * Called from artifact database before an artifact is |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 * going to be exported as xml document. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 * @param context The global context of the runtime system. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 void cleanup(Object context); |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 |
116
2707b7ec273f
Added missing call contexts to API.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
115
diff
changeset
|
97 void addArtifact(Artifact artifact, Document attributes, CallContext context); |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 |
116
2707b7ec273f
Added missing call contexts to API.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
115
diff
changeset
|
99 void removeArtifact(Artifact artifact, CallContext context); |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 |
116
2707b7ec273f
Added missing call contexts to API.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
115
diff
changeset
|
101 Artifact [] getArtifacts(CallContext context); |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 |
116
2707b7ec273f
Added missing call contexts to API.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
115
diff
changeset
|
103 Document getAttribute(Artifact artifactCall, CallContext context); |
2707b7ec273f
Added missing call contexts to API.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
115
diff
changeset
|
104 |
2707b7ec273f
Added missing call contexts to API.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
115
diff
changeset
|
105 void setAttribute(Artifact artifact, Document document, CallContext context); |
115
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 /** |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 * Produce output for this collection. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 * @param format Specifies the format of the output. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 * @param out Stream to write the result data to. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 * @param context The global context of the runtime system. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 * @throws IOException Thrown if an I/O occurs. |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 */ |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 void out( |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 Document format, |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 OutputStream out, |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 CallContext context) |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 throws IOException; |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 } |
a1200c6ed048
Initial interfaces to handle with Collections and Users.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |