Mercurial > dive4elements > gnv-client
changeset 222:3e82b4f1c455
Removed some Compilation-Errors according to API-Changes in the ArtifactDatabase.
Added the possibility to switch to an alternative Transition.
gnv-artifacts/trunk@284 c6561f87-3c4e-4783-a992-168aeb5c3f6f
line wrap: on
line diff
--- a/gnv-artifacts/ChangeLog Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/ChangeLog Thu Nov 05 14:45:54 2009 +0000 @@ -1,3 +1,26 @@ +2009-11-05 Tim Englich <tim.englich@intevation.de> + + * src/test/ressources/*_describe.xml: + Added the DescribeRequestBodies to each TestCaseData. + * src/test/java/de/intevation/gnv/artifacts/GNVArtifactsTestCase.java: + Added the DescribeRequestBody to Describe-Calls in the Test + * src/main/java/de/intevation/gnv/transition/TransitionBase.java: + Added the possibility to switch to an alternative Transition if no value was choosen. + + * src/main/java/de/intevation/gnv/utils/InputValidator.java (isInputValid): + Added that the Inputvalue is valid if it fullfills the confitions of "no value choosen" (n/n) + + * src/main/java/de/intevation/gnv/statistics/HorizontalProfileStatistics.java (calculateXOrdinateValue): + Added Dummyvalue for X-OrdinateValue + src/main/java/de/intevation/gnv/timeseries/TimeSeriesArtifact.java (describe), + src/main/java/de/intevation/gnv/profile/verticalcrosssection/VerticalCrossSectionMeshArtifact.java (describe), + src/main/java/de/intevation/gnv/profile/vertical/VerticalProfileArtifact.java (describe), + src/main/java/de/intevation/gnv/profile/horizontalcrosssection/HorizontalCrossSectionMeshArtifact.java (describe), + src/main/java/de/intevation/gnv/profile/horizontal/HorizontalProfileArtifact.java (describe), + src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java (describe), + src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java (createDescibeOutput): + Added the possibility to exclude the UI from the DescribeRequest. + 2009-11-03 Tim Englich <tim.englich@intevation.de> * src/main/java/de/intevation/gnv/chart/ChartFactory.java (getTimeGapValue):
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java Thu Nov 05 14:45:54 2009 +0000 @@ -239,7 +239,7 @@ } } - protected Document createDescibeOutput(CallMeta callMeta, String uuid) { + protected Document createDescibeOutput(CallMeta callMeta, String uuid, boolean incudeUI) { log.debug("GNVArtifactBase.createDescibeOutput"); Document document = XMLUtils.newDocument(); Element rootNode = this.createRootNode(document); @@ -248,9 +248,20 @@ this.createCurrentState(rootNode, document); this.createReachableStates(rootNode, document); this.createModel(rootNode, document); - this.createUserInterface(rootNode, document, callMeta, uuid); + if (incudeUI){ + this.createUserInterface(rootNode, document, callMeta, uuid); + } return document; } + + protected boolean getIncludeUIFromDocument(Document document){ + String value = Config.getStringXPath(document, "action/include-ui"); + boolean includeUI = false; + if (value != null){ + includeUI = Boolean.parseBoolean(value); + } + return includeUI; + } protected Element createRootNode(Document document) { Element rootNode = xmlUtilities.createArtifactElement(document,
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java Thu Nov 05 14:45:54 2009 +0000 @@ -97,7 +97,14 @@ + this.xmlUtilities .writeDocument2String(feedDocument)); Document descibeDocument = xmlUtilities - .reInitDocument(this.productArtifact.describe(context)); + .reInitDocument(this. + productArtifact. + describe(xmlUtilities. + reInitDocument(this. + createDescribeRequestBody(uuid, + hash, + false)), + context)); log.debug("Descibe ==> " + this.xmlUtilities .writeDocument2String(descibeDocument)); @@ -122,6 +129,33 @@ } return result; } + + private Document createDescribeRequestBody(String uuid, + String hash, + boolean includeUI){ + Document document = XMLUtils.newDocument(); + + Element rootNode = xmlUtilities.createArtifactElement(document,"action"); + document.appendChild(rootNode); + + Element typeNode = this.xmlUtilities.createArtifactElement(document, "type"); + typeNode.setAttribute("name", "describe"); + rootNode.appendChild(typeNode); + + Element uuidNode = this.xmlUtilities.createArtifactElement(document, "uuid"); + uuidNode.setAttribute("value",uuid); + rootNode.appendChild(uuidNode); + + Element hashNode = this.xmlUtilities.createArtifactElement(document, "hash"); + hashNode.setAttribute("value", hash); + rootNode.appendChild(hashNode); + + Element includeUINode = this.xmlUtilities.createArtifactElement(document, "include-ui"); + includeUINode.setTextContent(""+includeUI); + rootNode.appendChild(includeUINode); + + return document; + } private Document createAdvanceProductArtifactDocument(String uuid, String hash, @@ -188,14 +222,14 @@ } /** - * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) + * @see de.intevation.artifactdatabase.DefaultArtifact#describe(org.w3c.dom.Document, de.intevation.artifacts.CallContext) */ @Override - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { if (this.productArtifact == null) { return this.createDescibeOutput(context.getMeta()); } else { - Document document = this.productArtifact.describe(context); + Document document = this.productArtifact.describe(data,context); document = new ArtifactXMLUtilities().reInitDocument(document); Node staticNode = Config .getNodeXPath(document, "/result/ui/static"); @@ -208,6 +242,7 @@ } } + /** * @see de.intevation.artifactdatabase.DefaultArtifact#feed(org.w3c.dom.Document, * java.lang.Object)
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/profile/horizontal/HorizontalProfileArtifact.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/profile/horizontal/HorizontalProfileArtifact.java Thu Nov 05 14:45:54 2009 +0000 @@ -36,12 +36,14 @@ } /** - * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) + * @see de.intevation.artifactdatabase.DefaultArtifact#describe(org.w3c.dom.Document, de.intevation.artifacts.CallContext) */ @Override - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { log.debug("HorizontalProfileArtifact.describe"); - return super.createDescibeOutput(context.getMeta(), super.identifier); + return super.createDescibeOutput(context.getMeta(), + super.identifier, + this.getIncludeUIFromDocument(data)); } /**
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/profile/horizontalcrosssection/HorizontalCrossSectionMeshArtifact.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/profile/horizontalcrosssection/HorizontalCrossSectionMeshArtifact.java Thu Nov 05 14:45:54 2009 +0000 @@ -36,12 +36,14 @@ } /** - * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) + * @see de.intevation.artifactdatabase.DefaultArtifact#describe(org.w3c.dom.Document, de.intevation.artifacts.CallContext) */ @Override - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { log.debug("HorizontalCrossSectionMeshArtifact.describe"); - return super.createDescibeOutput(context.getMeta(),super.identifier); + return super.createDescibeOutput(context.getMeta(), + super.identifier, + this.getIncludeUIFromDocument(data)); } /**
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/profile/vertical/VerticalProfileArtifact.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/profile/vertical/VerticalProfileArtifact.java Thu Nov 05 14:45:54 2009 +0000 @@ -35,12 +35,14 @@ } /** - * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) + * @see de.intevation.artifactdatabase.DefaultArtifact#describe(org.w3c.dom.Document, de.intevation.artifacts.CallContext) */ @Override - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { log.debug("VerticalProfileArtifact.describe"); - return super.createDescibeOutput(context.getMeta(),super.identifier); + return super.createDescibeOutput(context.getMeta(), + super.identifier, + this.getIncludeUIFromDocument(data)); } /**
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/profile/verticalcrosssection/VerticalCrossSectionMeshArtifact.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/profile/verticalcrosssection/VerticalCrossSectionMeshArtifact.java Thu Nov 05 14:45:54 2009 +0000 @@ -36,12 +36,14 @@ } /** - * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) + * @see de.intevation.artifactdatabase.DefaultArtifact#describe(org.w3c.dom.Document, de.intevation.artifacts.CallContext) */ @Override - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { log.debug("VerticalCrossSectionMeshArtifact.describe"); - return super.createDescibeOutput(context.getMeta(),super.identifier); + return super.createDescibeOutput(context.getMeta(), + super.identifier, + this.getIncludeUIFromDocument(data)); } /**
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/statistics/HorizontalProfileStatistics.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/statistics/HorizontalProfileStatistics.java Thu Nov 05 14:45:54 2009 +0000 @@ -22,6 +22,6 @@ @Override protected double calculateXOrdinateValue(Result row) throws SQLException { - return row.getDouble("XORDINATE_XCOORD"); + return 0; // TODO FIXME } }
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/timeseries/TimeSeriesArtifact.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/timeseries/TimeSeriesArtifact.java Thu Nov 05 14:45:54 2009 +0000 @@ -35,12 +35,14 @@ } /** - * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) + * @see de.intevation.artifactdatabase.DefaultArtifact#describe(org.w3c.dom.Document, de.intevation.artifacts.CallContext) */ @Override - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { log.debug("TimeSeriesArtifact.describe"); - return super.createDescibeOutput(context.getMeta(), super.identifier); + return super.createDescibeOutput(context.getMeta(), + super.identifier, + this.getIncludeUIFromDocument(data)); } /**
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java Thu Nov 05 14:45:54 2009 +0000 @@ -56,8 +56,10 @@ */ private static Logger log = Logger.getLogger(GNVArtifactBase.class); - private static String MINVALUEFIELDNAME = "minvalue"; - private static String MAXVALUEFIELDNAME = "maxvalue"; + private final static String MINVALUEFIELDNAME = "minvalue"; + private final static String MAXVALUEFIELDNAME = "maxvalue"; + + private final static String NODATASELECTIONKEY = "n/n"; private final static String DESCRIBEDATAKEY = "_DESCRIBEDATA"; @@ -68,10 +70,14 @@ protected String dataName = null; protected boolean dataMultiSelect = false; + + protected boolean dataNoSelect = false; protected String queryID = null; private Collection<String> reachableTransitions = null; + + private Transition alternativeTransition = null; protected Collection<String> inputValueNames = null; @@ -107,7 +113,28 @@ * @see de.intevation.gnv.transition.Transition#reachableTransitions() */ public Collection<String> reachableTransitions() { - return this.reachableTransitions; + + if (this.couldAlternativeTransitionUsed()){ + return this.alternativeTransition.reachableTransitions(); + }else{ + return this.reachableTransitions; + } + + } + + /** + * @return + */ + private boolean couldAlternativeTransitionUsed() { + // TODO das muss hier noch etwas freier gestaltet werden. + Object[] inputValues = this.inputValueNames.toArray(); + String key = (String)inputValues[inputValues.length-1]; + boolean returnValue= this.alternativeTransition != null && + this.inputData != null && + this.inputData.containsKey(key) && + this.inputData.get(key).getValue(). + equals(NODATASELECTIONKEY); + return returnValue; } /** @@ -135,7 +162,13 @@ this.reachableTransitions.add(reachableTransition); } - + + Node alternativeTransitionNode = Config.getNodeXPath(configuration, + "alternativeTransition/transition"); + if (alternativeTransitionNode != null){ + this.alternativeTransition = TransitionFactory.getInstance() + .createTransition(alternativeTransitionNode); + } NodeList inputValuesNodes = Config.getNodeSetXPath(configuration, "inputvalues/inputvalue"); this.inputValues = new HashMap<String, InputValue>(inputValuesNodes @@ -169,11 +202,17 @@ this.dataName = Config.getStringXPath(configuration, "dataname"); String dataMultiSelectValue = Config.getStringXPath(configuration, - "data-multiselect"); + "data-multiselect"); if (dataMultiSelectValue != null) { this.dataMultiSelect = Boolean.parseBoolean(dataMultiSelectValue); } - + + String dataNoSelectValue =Config.getStringXPath(configuration, + "data-noselect"); + if (dataNoSelectValue != null) { + this. dataNoSelect = Boolean.parseBoolean(dataNoSelectValue); + } + } /** @@ -298,12 +337,16 @@ public boolean isTransitionReachable(String transitionID) { log.debug("TransitionBase.isTransitionReachable"); boolean returnValue = false; - Iterator<String> transitions = reachableTransitions.iterator(); - while (transitions.hasNext()) { - if (transitions.next().equals(transitionID)) { - log.debug("Transition " + transitionID + " wird unterstützt."); - returnValue = true; - break; + if (this.couldAlternativeTransitionUsed()){ + return alternativeTransition.isTransitionReachable(transitionID); + }else{ + Iterator<String> transitions = reachableTransitions.iterator(); + while (transitions.hasNext()) { + if (transitions.next().equals(transitionID)) { + log.debug("Transition " + transitionID + " wird unterstützt."); + returnValue = true; + break; + } } } return returnValue; @@ -316,52 +359,60 @@ public void advance(String uuid, CallMeta callMeta) throws TransitionException { log.debug("TransitionBase.advance"); - try { - List<String> list = new ArrayList<String>(); - - Iterator<String> it = this.inputValueNames.iterator(); - int i = 0; - while (it.hasNext()) { - String value = it.next(); - InputData data = this.inputData.get(value); - if (data != null - && this.inputValues.containsKey(data.getName())) { - int size = this.inputValues.get(data.getName()) - .usedInQueries(); - String type = this.inputValues.get(data.getName()) - .getType(); - String requestValue = data.getValue(); - if (type.equalsIgnoreCase("string")) { - requestValue = this - .prepareInputData4DBQuery(requestValue); - } else if (type.equalsIgnoreCase("date")) { - requestValue = this - .prepareInputData4DateDBQuery(requestValue); - } else if (type.equalsIgnoreCase("coordinate")){ - requestValue = this - .prepareInputData4RegionDBQuery(requestValue); - } - for (int j = 0; j < size; j++) { - list.add(requestValue); + + if (this.couldAlternativeTransitionUsed()){ + this.alternativeTransition.setParent(this.getParent()); + this.alternativeTransition.putInputData(this.inputData != null ? + this.inputData.values() : + null,uuid); + this.alternativeTransition.advance(uuid, callMeta); + }else{ + try { + List<String> list = new ArrayList<String>(); + Iterator<String> it = this.inputValueNames.iterator(); + int i = 0; + while (it.hasNext()) { + String value = it.next(); + InputData data = this.inputData.get(value); + if (data != null + && this.inputValues.containsKey(data.getName())) { + int size = this.inputValues.get(data.getName()) + .usedInQueries(); + String type = this.inputValues.get(data.getName()) + .getType(); + String requestValue = data.getValue(); + if (type.equalsIgnoreCase("string")) { + requestValue = this + .prepareInputData4DBQuery(requestValue); + } else if (type.equalsIgnoreCase("date")) { + requestValue = this + .prepareInputData4DateDBQuery(requestValue); + } else if (type.equalsIgnoreCase("coordinate")){ + requestValue = this + .prepareInputData4RegionDBQuery(requestValue); + } + for (int j = 0; j < size; j++) { + list.add(requestValue); + } } } + String[] filterValues = list.toArray(new String[0]); + Collection<Result> result = null; + try { + if (this.queryID != null) { + QueryExecutor queryExecutor = QueryExecutorFactory + .getInstance().getQueryExecutor(); + result = queryExecutor.executeQuery(this.queryID, + filterValues); + } + this.purifyResult(result, uuid); + } catch (RuntimeException e) { + log.error(e, e); + } + } catch (QueryException e) { + log.error(e, e); + throw new TransitionException(e); } - String[] filterValues = list.toArray(new String[0]); - Collection<Result> result = null; - try { - if (this.queryID != null) { - QueryExecutor queryExecutor = QueryExecutorFactory - .getInstance().getQueryExecutor(); - result = queryExecutor.executeQuery(this.queryID, - filterValues); - } - this.purifyResult(result, uuid); - } catch (RuntimeException e) { - log.error(e, e); - } - } catch (QueryException e) { - log.error(e, e); - throw new TransitionException(e); } } @@ -424,18 +475,29 @@ * @param result * @return */ - protected NamedCollection<KeyValueDescibeData> extractKVP( - Collection<Result> result, + protected NamedCollection<KeyValueDescibeData> extractKVP(Collection<Result> result, String keyid, String valueid) { Iterator<Result> rit = result.iterator(); + int dataSize = (this.dataNoSelect ? result.size()+1 : result.size()); + NamedCollection<KeyValueDescibeData> keyValueDescibeData = new NamedArrayList<KeyValueDescibeData>( - this.dataName, result.size()); + this.dataName, dataSize); keyValueDescibeData.setMultiSelect(this.dataMultiSelect); + + if (this.dataNoSelect){ + keyValueDescibeData.add(new DefaultKeyValueDescribeData(NODATASELECTIONKEY, + "Keine Auswahl")); + } + String previousKey = null; while (rit.hasNext()) { Result resultValue = rit.next(); - keyValueDescibeData.add(new DefaultKeyValueDescribeData(resultValue - .getString(keyid), resultValue.getString(valueid))); + String tmpKey = resultValue.getString(keyid); + // TODO: HACK da die ARCSDE kein DISTINCT auf räumlichen Anfragen unterstützt. + if (previousKey == null || !tmpKey.equals(previousKey)){ + previousKey = tmpKey; + keyValueDescibeData.add(new DefaultKeyValueDescribeData(tmpKey, resultValue.getString(valueid))); + } } return keyValueDescibeData; } @@ -653,6 +715,10 @@ * @see de.intevation.gnv.transition.Transition#getInputData() */ public Collection<InputData> getInputData() throws TransitionException { - return this.inputData != null ? this.inputData.values() : null; + if (this.couldAlternativeTransitionUsed()){ + return this.alternativeTransition.getInputData(); + }else{ + return this.inputData != null ? this.inputData.values() : null; + } } }
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/InputValidator.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/InputValidator.java Thu Nov 05 14:45:54 2009 +0000 @@ -22,6 +22,9 @@ * the logger, used to log exceptions and additonaly information */ private static Logger log = Logger.getLogger(InputValidator.class); + + + public final static String NODATASELECTEDVALUE = "n/n"; /** * Constructor @@ -36,7 +39,10 @@ String[] values = input.split(","); for (int i = 0; i < values.length; i++) { boolean valid; - if ("Integer".equalsIgnoreCase(type)) { + + if (NODATASELECTEDVALUE.equals(values[i].trim())){ + valid = true; + } else if ("Integer".equalsIgnoreCase(type)) { valid = GenericValidator.isInt(values[i].trim()); } else if ("Double".equalsIgnoreCase(type)) { valid = GenericValidator.isDouble(values[i].trim());
--- a/gnv-artifacts/src/test/java/de/intevation/gnv/artifacts/GNVArtifactsTestCase.java Tue Nov 03 11:46:30 2009 +0000 +++ b/gnv-artifacts/src/test/java/de/intevation/gnv/artifacts/GNVArtifactsTestCase.java Thu Nov 05 14:45:54 2009 +0000 @@ -91,12 +91,13 @@ // Erster Schritt + Document describeDocument = this.readDocument("src/test/ressources/timeseries/timeseries_describe.xml"); this .doNextStep( artifact, cc, "src/test/ressources/timeseries/timeseries_step_01_feed.xml", - "src/test/ressources/timeseries/timeseries_step_01_advance.xml"); + "src/test/ressources/timeseries/timeseries_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -104,7 +105,7 @@ artifact, cc, "src/test/ressources/timeseries/timeseries_step_02_feed.xml", - "src/test/ressources/timeseries/timeseries_step_02_advance.xml"); + "src/test/ressources/timeseries/timeseries_step_02_advance.xml", describeDocument); // Dritter Schritt this @@ -112,7 +113,7 @@ artifact, cc, "src/test/ressources/timeseries/timeseries_step_03_feed.xml", - "src/test/ressources/timeseries/timeseries_step_03_advance.xml"); + "src/test/ressources/timeseries/timeseries_step_03_advance.xml", describeDocument); // Vierter Schritt this @@ -120,11 +121,11 @@ artifact, cc, "src/test/ressources/timeseries/timeseries_step_04_feed.xml", - "src/test/ressources/timeseries/timeseries_step_04_advance.xml"); + "src/test/ressources/timeseries/timeseries_step_04_advance.xml", describeDocument); Document outputData; // Fünfter Schritt - outputData = artifact.describe(cc); + outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; try { fos = new FileOutputStream( @@ -171,12 +172,13 @@ /** * @param artifact * @param cc + * @param describeDocument TODO * @throws Exception */ private void doNextStep(Artifact artifact, CallContext cc, - String feedDocument, String advanceDocument) + String feedDocument, String advanceDocument, Document describeDocument) throws Exception { - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); // this.writeDocument2Log(outputData); outputData = artifact.feed(this.readDocument(feedDocument), cc); this.check4ExceptionReport(outputData); @@ -201,13 +203,14 @@ CallContext cc = createCallContext(); + Document describeDocument = this.readDocument("src/test/ressources/timeseries_mesh/timeseries_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/timeseries_mesh/timeseries_step_01_feed.xml", - "src/test/ressources/timeseries_mesh/timeseries_step_01_advance.xml"); + "src/test/ressources/timeseries_mesh/timeseries_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -215,7 +218,7 @@ artifact, cc, "src/test/ressources/timeseries_mesh/timeseries_step_02_feed.xml", - "src/test/ressources/timeseries_mesh/timeseries_step_02_advance.xml"); + "src/test/ressources/timeseries_mesh/timeseries_step_02_advance.xml", describeDocument); // Dritter Schritt this @@ -223,7 +226,7 @@ artifact, cc, "src/test/ressources/timeseries_mesh/timeseries_step_03_feed.xml", - "src/test/ressources/timeseries_mesh/timeseries_step_03_advance.xml"); + "src/test/ressources/timeseries_mesh/timeseries_step_03_advance.xml", describeDocument); // Vierter Schritt this @@ -231,7 +234,7 @@ artifact, cc, "src/test/ressources/timeseries_mesh/timeseries_step_04_feed.xml", - "src/test/ressources/timeseries_mesh/timeseries_step_04_advance.xml"); + "src/test/ressources/timeseries_mesh/timeseries_step_04_advance.xml", describeDocument); // Fünfter Schritt this @@ -239,7 +242,7 @@ artifact, cc, "src/test/ressources/timeseries_mesh/timeseries_step_05_feed.xml", - "src/test/ressources/timeseries_mesh/timeseries_step_05_advance.xml"); + "src/test/ressources/timeseries_mesh/timeseries_step_05_advance.xml", describeDocument); // Sechster Schritt this @@ -247,10 +250,10 @@ artifact, cc, "src/test/ressources/timeseries_mesh/timeseries_step_06_feed.xml", - "src/test/ressources/timeseries_mesh/timeseries_step_06_advance.xml"); + "src/test/ressources/timeseries_mesh/timeseries_step_06_advance.xml", describeDocument); // Siebter Schritt - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -320,13 +323,14 @@ CallContext cc = createCallContext(); + Document describeDocument = this.readDocument("src/test/ressources/verticalprofile/verticalprofile_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalprofile/verticalprofile_step_01_feed.xml", - "src/test/ressources/verticalprofile/verticalprofile_step_02_advance.xml"); + "src/test/ressources/verticalprofile/verticalprofile_step_02_advance.xml", describeDocument); // Zweiter Schritt this @@ -334,7 +338,7 @@ artifact, cc, "src/test/ressources/verticalprofile/verticalprofile_step_02_feed.xml", - "src/test/ressources/verticalprofile/verticalprofile_step_02_advance.xml"); + "src/test/ressources/verticalprofile/verticalprofile_step_02_advance.xml", describeDocument); // Dritter Schritt this @@ -342,7 +346,7 @@ artifact, cc, "src/test/ressources/verticalprofile/verticalprofile_step_03_feed.xml", - "src/test/ressources/verticalprofile/verticalprofile_step_03_advance.xml"); + "src/test/ressources/verticalprofile/verticalprofile_step_03_advance.xml", describeDocument); // Vierter Schritt this @@ -350,11 +354,11 @@ artifact, cc, "src/test/ressources/verticalprofile/verticalprofile_step_04_feed.xml", - "src/test/ressources/verticalprofile/verticalprofile_step_04_advance.xml"); + "src/test/ressources/verticalprofile/verticalprofile_step_04_advance.xml", describeDocument); // Vierter Schritt - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -423,14 +427,14 @@ log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); - + Document describeDocument = this.readDocument("src/test/ressources/verticalprofile_mesh/verticalprofile_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_01_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_01_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -438,7 +442,7 @@ artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_02_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_02_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_02_advance.xml", describeDocument); // Dritter Schritt this @@ -446,7 +450,7 @@ artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_03_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_03_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_03_advance.xml", describeDocument); // Vierter Schritt this @@ -454,7 +458,7 @@ artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_04_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_04_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_04_advance.xml", describeDocument); // Fünfter Schritt this @@ -462,7 +466,7 @@ artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_05_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_05_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_05_advance.xml", describeDocument); // Sechster Schritt this @@ -470,7 +474,7 @@ artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_06_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_06_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_06_advance.xml", describeDocument); // Siebter Schritt this @@ -478,10 +482,10 @@ artifact, cc, "src/test/ressources/verticalprofile_mesh/verticalprofile_step_07_feed.xml", - "src/test/ressources/verticalprofile_mesh/verticalprofile_step_07_advance.xml"); + "src/test/ressources/verticalprofile_mesh/verticalprofile_step_07_advance.xml", describeDocument); // Achter Schritt - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -550,14 +554,14 @@ log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); - + Document describeDocument = this.readDocument("src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_01_feed.xml", - "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_01_advance.xml"); + "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -565,7 +569,7 @@ artifact, cc, "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_02_feed.xml", - "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_02_advance.xml"); + "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_02_advance.xml", describeDocument); // Dritter Schritt this @@ -573,17 +577,17 @@ artifact, cc, "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_03_feed.xml", - "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_03_advance.xml"); + "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_03_advance.xml", describeDocument); // Vierter Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_04_feed.xml", - "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_04_advance.xml"); + "src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_step_04_advance.xml", describeDocument); // Vierter Schritt - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -653,14 +657,14 @@ log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); - + Document describeDocument = this.readDocument("src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_00_feed.xml", - "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_00_advance.xml"); + "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_00_advance.xml", describeDocument); // Erster Schritt this @@ -668,7 +672,7 @@ artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_01_feed.xml", - "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_01_advance.xml"); + "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -676,30 +680,30 @@ artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_02_feed.xml", - "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_02_advance.xml"); + "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_02_advance.xml", describeDocument); // Dritter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_03_feed.xml", - "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_03_advance.xml"); + "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_03_advance.xml", describeDocument); // Vierter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_04_feed.xml", - "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_04_advance.xml"); + "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_04_advance.xml", describeDocument); // Fünfter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_05_feed.xml", - "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_05_advance.xml"); + "src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_step_05_advance.xml", describeDocument); - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument, cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -763,14 +767,14 @@ log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); - + Document describeDocument = this.readDocument("src/test/ressources/horizontalProfile_mesh/horizontalprofile_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_01_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_01_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -778,28 +782,28 @@ artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_02_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_02_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_02_advance.xml", describeDocument); // Dritter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_03_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_03_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_03_advance.xml", describeDocument); // Vierter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_04_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_04_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_04_advance.xml", describeDocument); // Fünfter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_05_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_05_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_05_advance.xml", describeDocument); // Sechster Schritt this @@ -807,7 +811,7 @@ artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_06_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_06_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_06_advance.xml", describeDocument); // Siebter Schritt this @@ -815,9 +819,9 @@ artifact, cc, "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_07_feed.xml", - "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_07_advance.xml"); + "src/test/ressources/horizontalProfile_mesh/horizontalprofile_step_07_advance.xml", describeDocument); - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -884,14 +888,14 @@ log.debug("HorizontalCrossSectionMesh-Artifact is available"); CallContext cc = createCallContext(); - + Document describeDocument = this.readDocument("src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_01_feed.xml", - "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_01_advance.xml"); + "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -899,23 +903,23 @@ artifact, cc, "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_02_feed.xml", - "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_02_advance.xml"); + "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_02_advance.xml", describeDocument); // Dritter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_03_feed.xml", - "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_03_advance.xml"); + "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_03_advance.xml", describeDocument); // Vierter Schritt this .doNextStep( artifact, cc, "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_04_feed.xml", - "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_04_advance.xml"); + "src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_step_04_advance.xml", describeDocument); - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; @@ -980,14 +984,14 @@ log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); - + Document describeDocument = this.readDocument("src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_describe.xml"); // Erster Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_01_feed.xml", - "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_01_advance.xml"); + "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_01_advance.xml", describeDocument); // Zweiter Schritt this @@ -995,28 +999,28 @@ artifact, cc, "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_02_feed.xml", - "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_02_advance.xml"); + "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_02_advance.xml", describeDocument); // Dritter Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_03_feed.xml", - "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_03_advance.xml"); + "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_03_advance.xml", describeDocument); // Vierter Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_04_feed.xml", - "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_04_advance.xml"); + "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_04_advance.xml", describeDocument); // Fünfter Schritt this .doNextStep( artifact, cc, "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_05_feed.xml", - "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_05_advance.xml"); + "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_05_advance.xml", describeDocument); // Sechster Schritt this @@ -1024,10 +1028,10 @@ artifact, cc, "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_06_feed.xml", - "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_06_advance.xml"); + "src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_step_06_advance.xml", describeDocument); - Document outputData = artifact.describe(cc); + Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="3637e455-944f-46ef-997d-8cd61d9ad2d3" /> + <art:hash value="5437874" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/horizontalProfile_mesh/horizontalprofile_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="1f6a63e2-c9d6-4ab1-830e-1effbc189d68" /> + <art:hash value="29647319" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="74baff94-b172-4667-b6d8-db21abeb1b81" /> + <art:hash value="6292125" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/timeseries/timeseries_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action + xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe"/> + <art:uuid value="dd87ce50-9bbe-11de-8a39-0800200c9a66"/> + <art:hash value="8392d409b5518044465ac8e9b7daf5ef"/> + <art:include-ui>true</art:include-ui> +</art:action>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/timeseries_mesh/timeseries_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="1e9f6583-9073-4409-aac1-432ad06d7ce1" /> + <art:hash value="29913235" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="07807bb4-572b-4a46-a71d-7c1c8c9ab50c" /> + <art:hash value="2969645" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/verticalprofile/verticalprofile_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="4319eb60-5419-4ce9-80b2-3ffac5b50146" /> + <art:hash value="18171662" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="4319eb60-5419-4ce9-80b2-3ffac5b50146" /> + <art:hash value="18171662" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/test/ressources/verticalprofile_mesh/verticalprofile_describe.xml Thu Nov 05 14:45:54 2009 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<art:action xmlns:art="http://www.intevation.de/2009/artifacts"> + <art:type name="describe" /> + <art:uuid value="73da18e1-16ef-4ef8-9388-df07a22d9099" /> + <art:hash value="3061481" /> + <art:include-ui>true</art:include-ui> +</art:action> \ No newline at end of file