ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / project / model / TraceTypeHelper.java
index c8e430c942af47da0eacdfa5dea9edaa1ca76da2..b647038809de05dd01aa4ce1739e856729b69b1c 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013 Ericsson
+ * Copyright (c) 2013, 2014 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -9,11 +9,14 @@
  * Contributors:
  *   Matthew Khouzam - Initial API and implementation
  *   Bernd Hufmann - Handling of directory traces types
+ *   Geneviève Bastien - Added support of experiment types
  *******************************************************************************/
 
 package org.eclipse.linuxtools.tmf.core.project.model;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.linuxtools.tmf.core.project.model.TmfTraceType.TraceElementType;
 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
 import org.eclipse.linuxtools.tmf.core.trace.TraceValidationStatus;
 
@@ -29,6 +32,8 @@ public class TraceTypeHelper {
     private final String fName;
     private final String fCategoryName;
     private final String fCanonicalName;
+    private final TraceElementType fElementType;
+    @NonNull
     private final ITmfTrace fTrace;
     private final boolean fIsDirectory;
 
@@ -47,13 +52,16 @@ public class TraceTypeHelper {
      *            an object of the trace type
      * @param isDir
      *            flag indicating whether the trace type is for a directory or file trace
+     * @param elementType
+     *            True if this helper is for an experiment type
      */
-    public TraceTypeHelper(String canonicalName, String categoryName, String name, ITmfTrace trace, boolean isDir) {
+    public TraceTypeHelper(String canonicalName, String categoryName, String name, @NonNull ITmfTrace trace, boolean isDir, TraceElementType elementType) {
         fName = name;
         fCategoryName = categoryName;
         fCanonicalName = canonicalName;
         fTrace = trace;
         fIsDirectory = isDir;
+        fElementType = elementType;
     }
 
     /**
@@ -90,12 +98,8 @@ public class TraceTypeHelper {
      *            the trace to validate
      * @return whether it passes the validation
      */
-    public boolean validate(String path) {
-        boolean valid = false;
-        if (fTrace != null) {
-            valid = standardValidate(path);
-        }
-        return valid;
+    public IStatus validate(String path) {
+        return fTrace.validate(null, path);
     }
 
     /**
@@ -108,13 +112,11 @@ public class TraceTypeHelper {
      */
     public int validateWithConfidence(String path) {
         int result = -1;
-        if (fTrace != null) {
-            IStatus status = fTrace.validate(null, path);
-            if (status.isOK()) {
-                result = 0;
-                if (status instanceof TraceValidationStatus) {
-                    result = ((TraceValidationStatus) status).getConfidence();
-                }
+        IStatus status = fTrace.validate(null, path);
+        if (status.isOK()) {
+            result = 0;
+            if (status instanceof TraceValidationStatus) {
+                result = ((TraceValidationStatus) status).getConfidence();
             }
         }
         return result;
@@ -129,9 +131,13 @@ public class TraceTypeHelper {
         return fTrace;
     }
 
-    private boolean standardValidate(String path) {
-        final boolean valid = fTrace.validate(null, path).isOK();
-        return valid;
+    /**
+     * Return whether this helper applies to a trace type or experiment type
+     *
+     * @return True if experiment type, false otherwise
+     */
+    public boolean isExperimentType() {
+        return fElementType == TraceElementType.EXPERIMENT;
     }
 
     /**
This page took 0.028792 seconds and 5 git commands to generate.