changeset 981:799c7108ea6d

datacage: prepared access to outs of artifacts. flys-artifacts/trunk@2409 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 27 Jul 2011 11:01:55 +0000
parents f9a6a9cd918e
children 66b3f2f064de
files flys-artifacts/ChangeLog flys-artifacts/doc/conf/datacage.sql flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java
diffstat 3 files changed, 25 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/ChangeLog	Wed Jul 27 08:20:55 2011 +0000
+++ b/flys-artifacts/ChangeLog	Wed Jul 27 11:01:55 2011 +0000
@@ -1,3 +1,12 @@
+2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* doc/conf/datacage.sql: Added an explicit table for the outs
+	  of an artifact.
+
+	* src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java:
+	  Make the current outs of an artifact accessible only with
+	  the global context.
+	
 2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>
 
 	* doc/conf/datacage.sql: Added ON DELETE CASCADE constraints.
--- a/flys-artifacts/doc/conf/datacage.sql	Wed Jul 27 08:20:55 2011 +0000
+++ b/flys-artifacts/doc/conf/datacage.sql	Wed Jul 27 11:01:55 2011 +0000
@@ -32,18 +32,27 @@
     UNIQUE (artifact_id, k)
 );
 
+CREATE TABLE outs (
+    id          IDENTITY PRIMARY KEY NOT NULL,
+    artifact_id INT                  NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
+    name        VARCHAR(256)         NOT NULL,
+    description VARCHAR(256),
+    out_type    VARCHAR(256)
+);
+
 CREATE TABLE facets (
     id          IDENTITY PRIMARY KEY NOT NULL,
     artifact_id INT                  NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
+    out_id      INT                  NOT NULL REFERENCES outs(id)      ON DELETE CASCADE,
     name        VARCHAR(256)         NOT NULL,
     num         INT                  NOT NULL,
     state       VARCHAR(256)         NOT NULL,
-    output      VARCHAR(256)         NOT NULL,
     description VARCHAR(256),
     UNIQUE (artifact_id, output, num, name)
 );
 
 -- DROP TABLE facets;
+-- DROP TABLE outs;
 -- DROP TABLE artifact_data;
 -- DROP TABLE collection_items;
 -- DROP TABLE collections;
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java	Wed Jul 27 08:20:55 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java	Wed Jul 27 11:01:55 2011 +0000
@@ -1131,7 +1131,7 @@
 
         for (String stateId: stateIds) {
             DefaultState state = (DefaultState) engine.getState(stateId);
-            generated.addAll(getOutputForState(context, state));
+            generated.addAll(getOutputForState(state));
         }
 
         generated.addAll(getCurrentOutputs(context));
@@ -1145,7 +1145,7 @@
 
         try {
             if (cur.validate(this, context)) {
-                return getOutputForState(context, cur);
+                return getOutputForState(cur);
             }
         }
         catch (IllegalArgumentException iae) { }
@@ -1153,11 +1153,11 @@
         return new ArrayList<Output>();
     }
 
+    public List<Output> getCurrentOutputs(Object context) {
+        return getOutputForState((DefaultState)getCurrentState(context));
+    }
 
-    protected List<Output> getOutputForState(
-        CallContext  context,
-        DefaultState state)
-    {
+    protected List<Output> getOutputForState(DefaultState state) {
         List<Output> list = state.getOutputs();
         if (list == null || list.size() == 0) {
             logger.debug("-> No output modes for this state.");

http://dive4elements.wald.intevation.org