You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/08/05 18:32:19 UTC
[04/11] incubator-taverna-language git commit: more explained way
more explained way
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/81fee894
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/81fee894
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/81fee894
Branch: refs/heads/master
Commit: 81fee89451f9c600a18d43da443f16d1839b7776
Parents: 3e5b436
Author: Menaka Madushanka <me...@gmail.com>
Authored: Fri Jul 24 02:43:15 2015 +0530
Committer: Menaka Madushanka <me...@gmail.com>
Committed: Fri Jul 24 02:43:15 2015 +0530
----------------------------------------------------------------------
.../taverna/robundle/validator/RoValidator.java | 84 ++++++++++++++++++++
1 file changed, 84 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/81fee894/taverna-robundle/src/main/java/org/apache/taverna/robundle/validator/RoValidator.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/validator/RoValidator.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/validator/RoValidator.java
index 1098bf0..18bf218 100644
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/validator/RoValidator.java
+++ b/taverna-robundle/src/main/java/org/apache/taverna/robundle/validator/RoValidator.java
@@ -19,6 +19,90 @@ package org.apache.taverna.robundle.validator;
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import javax.swing.event.ListSelectionEvent;
+
+import org.apache.taverna.robundle.Bundle;
+import org.apache.taverna.robundle.Bundles;
+import org.apache.taverna.robundle.manifest.Manifest;
+import org.apache.taverna.robundle.manifest.PathAnnotation;
+import org.apache.taverna.robundle.manifest.PathMetadata;
+
+
+
+
+/*
+ * Validation Process:
+ * The class validates RO bundles for manifest and aggregates.
+ * Aggregate validation:
+ * There are 03 cases,
+ * 1. If the aggregates are listed in manifest but not found in the container: AggregatenotFound Error
+ * 2. If aggregates contain an external uri, there will be a warning
+ * 3. If aggregate is not listed but included in the container, info-level warning.
+ *
+ * Also in annotations....
+ * If the about contain a /-based resource which is not listed or not in the container, there will be an error.
+ */
public class RoValidator {
+ private Path p;
+ //Store all aggregates to be checked
+ private List<PathMetadata> aggr;
+
+ //Store all the annotations
+ private List<PathAnnotation> anno;
+
+
+ //ArrayList for errors :- If aggregate is listed in manifest but not in bundle
+ private ArrayList<String> errorList = new ArrayList<>();
+
+ //ArrayList for warnings :- If files not listed in the manifest are included in bundle
+ private ArrayList<String> warningList = new ArrayList<String>();
+
+
+ public RoValidator(Path path){
+ this.p = path;
+ }
+
+ public void validate(){
+ Bundle bundle;
+ ArrayList<String> items = new ArrayList<String>();
+ try {
+ bundle = Bundles.openBundle(this.p);
+ Manifest manifest = bundle.getManifest();
+ this.aggr = manifest.getAggregates();
+ this.anno = manifest.getAnnotations();
+
+
+ ZipFile zip = new ZipFile(new File(this.p.toString()));
+ Enumeration<? extends ZipEntry> ent = zip.entries();
+ while(ent.hasMoreElements()){
+ ZipEntry entry = ent.nextElement();
+ if(!entry.isDirectory()){
+ items.add("/"+entry.getName());
+ }
+ }
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ check(items);
+
+ }
+
+ public void check(ArrayList<String> list){
+
+ }
+
}