Adjusted filters for matching meta-fields
authorFrancois Chouinard <fchouinard@gmail.com>
Fri, 24 Feb 2012 23:09:36 +0000 (18:09 -0500)
committerFrancois Chouinard <fchouinard@gmail.com>
Fri, 24 Feb 2012 23:09:36 +0000 (18:09 -0500)
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/ITmfFilter.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterAndNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterCompareNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterContainsNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterEqualsNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterEventTypeNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterMatchesNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterOrNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterRootNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterTreeNode.java

index 1c01af8d5c04484b637e451a3802b4f4da831fcd..e18555d3509fd2f248df337ac54ed602cb8a9a19 100644 (file)
@@ -12,7 +12,7 @@
 \r
 package org.eclipse.linuxtools.tmf.core.filter;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public interface ITmfFilter {\r
@@ -23,6 +23,6 @@ public interface ITmfFilter {
         * @param event The event to verify.\r
         * @return True if the event matches the filter conditions.\r
         */\r
-       public boolean matches(TmfEvent event);\r
+       public boolean matches(ITmfEvent event);\r
        \r
 }\r
index 549c54e9bf07156e4695a91fccefd9b18c4396c7..2d16bcebb1c6375817e273170627fe5d9b6c1e9e 100644 (file)
@@ -12,7 +12,7 @@
 \r
 package org.eclipse.linuxtools.tmf.core.filter.model;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterAndNode extends TmfFilterTreeNode {\r
@@ -40,7 +40,7 @@ public class TmfFilterAndNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
+       public boolean matches(ITmfEvent event) {\r
                for (ITmfFilterTreeNode node : getChildren()) {\r
                        if (! node.matches(event)) {\r
                                return false ^ fNot;\r
index 7dff3e6072ffa38940b068295322846a438d347e..78630038c3df615a3dd0df404c0d3f4af48735bd 100644 (file)
@@ -17,7 +17,7 @@ import java.text.ParseException;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;\r
 \r
 \r
@@ -111,8 +111,8 @@ public class TmfFilterCompareNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
-        Object value = event.getContent().getField(fField).getValue();\r
+       public boolean matches(ITmfEvent event) {\r
+        Object value = getFieldValue(event, fField);\r
         if (value == null) {\r
             return false ^ fNot;\r
         }\r
index 9a77053b85f719a4994b615cd3fa75826575af99..df52789b8038de3dcf4dd53689bbb94248f5a12a 100644 (file)
@@ -15,7 +15,7 @@ package org.eclipse.linuxtools.tmf.core.filter.model;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterContainsNode extends TmfFilterTreeNode {\r
@@ -75,8 +75,8 @@ public class TmfFilterContainsNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
-        Object value = event.getContent().getField(fField);\r
+       public boolean matches(ITmfEvent event) {\r
+        Object value = getFieldValue(event, fField);\r
         if (value == null) {\r
             return false ^ fNot;\r
         }\r
index 1ae98755cb89840bfedfbf36ebacff51cadc91f2..ca9aa1177b65e6360935047c7325466ce868b5ac 100644 (file)
@@ -15,7 +15,7 @@ package org.eclipse.linuxtools.tmf.core.filter.model;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterEqualsNode extends TmfFilterTreeNode {\r
@@ -73,8 +73,8 @@ public class TmfFilterEqualsNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
-        Object value = event.getContent().getField(fField);\r
+       public boolean matches(ITmfEvent event) {\r
+        Object value = getFieldValue(event, fField);\r
         if (value == null) {\r
             return false ^ fNot;\r
         }\r
index 26bae73b5fa7365d870a019e48f7455a44718a7f..4de9d5ef739894185dd649ec479a41b34bf19fe4 100644 (file)
@@ -15,7 +15,7 @@ package org.eclipse.linuxtools.tmf.core.filter.model;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterEventTypeNode extends TmfFilterTreeNode {\r
@@ -53,7 +53,7 @@ public class TmfFilterEventTypeNode extends TmfFilterTreeNode {
        }\r
 \r
     @Override\r
-    public boolean matches(TmfEvent event) {\r
+    public boolean matches(ITmfEvent event) {\r
         boolean match = false;\r
         if (fType.contains(":")) { //$NON-NLS-1$\r
             // special case for custom parsers\r
index 17a3382d319b38f11319f80007387abf7e02560e..59eb94b72018253bdc9cafcce6e3cd52d7fc166c 100644 (file)
@@ -17,7 +17,7 @@ import java.util.List;
 import java.util.regex.Pattern;\r
 import java.util.regex.PatternSyntaxException;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterMatchesNode extends TmfFilterTreeNode {\r
@@ -71,15 +71,17 @@ public class TmfFilterMatchesNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
+       public boolean matches(ITmfEvent event) {\r
         if (fPattern == null) {\r
             return false ^ fNot;\r
         }\r
-        Object value = event.getContent().getField(fField);\r
+\r
+        Object value = getFieldValue(event, fField);\r
         if (value == null) {\r
             return false ^ fNot;\r
         }\r
         String valueString = value.toString();\r
+\r
         return fPattern.matcher(valueString).matches() ^ fNot;\r
        }\r
 \r
index 0ed8af5e88c20547cb3b667a4ee1c5618235f77a..a3dc3a1a9e76d738fa5991887bdfc49662e32ed0 100644 (file)
@@ -15,7 +15,7 @@ package org.eclipse.linuxtools.tmf.core.filter.model;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterNode extends TmfFilterTreeNode {\r
@@ -49,7 +49,7 @@ public class TmfFilterNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
+       public boolean matches(ITmfEvent event) {\r
                // There should be at most one child\r
                for (ITmfFilterTreeNode node : getChildren()) {\r
                        if (node.matches(event)) {\r
index c81a6f3d9e9f5f3b2a104f095ee95dfb6cd67921..6fdf6e5f8411cd1c91057e5ef2b3c65b509ed6f1 100644 (file)
@@ -12,7 +12,7 @@
 \r
 package org.eclipse.linuxtools.tmf.core.filter.model;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterOrNode extends TmfFilterTreeNode {\r
@@ -40,7 +40,7 @@ public class TmfFilterOrNode extends TmfFilterTreeNode {
        }\r
        \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
+       public boolean matches(ITmfEvent event) {\r
                for (ITmfFilterTreeNode node : getChildren()) {\r
                        if (node.matches(event)) {\r
                                return true ^ fNot;\r
index 5a48144dd7b11263d3f2622d3ed23c927d019ba3..4577bb3d77dbd60d9c3b4104c0f118099b2c596e 100644 (file)
@@ -15,7 +15,7 @@ package org.eclipse.linuxtools.tmf.core.filter.model;
 import java.util.Arrays;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 \r
 \r
 public class TmfFilterRootNode extends TmfFilterTreeNode {\r
@@ -36,7 +36,7 @@ public class TmfFilterRootNode extends TmfFilterTreeNode {
        }\r
 \r
        @Override\r
-       public boolean matches(TmfEvent event) {\r
+       public boolean matches(ITmfEvent event) {\r
                for (ITmfFilterTreeNode node : getChildren()) {\r
                        if (! node.matches(event)) {\r
                                return false;\r
index cd260f45988f15cd15012e4ef3d8cb1006c7a8fe..809fd9f8070c3a650390aac426e3c2ec821c51c3 100644 (file)
@@ -17,7 +17,8 @@ import java.util.ArrayList;
 import java.util.Arrays;\r
 import java.util.List;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;\r
 \r
 /**\r
  * <b><u>TmfFilterTreeNode</u></b>\r
@@ -148,7 +149,36 @@ public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable
         * @see org.eclipse.linuxtools.tmf.filter.model.ITmfFilterTreeNode#matches(org.eclipse.linuxtools.tmf.event.TmfEvent)\r
         */\r
        @Override\r
-       public abstract boolean matches(TmfEvent event);\r
+       public abstract boolean matches(ITmfEvent event);\r
+\r
+    /**\r
+     * @param event\r
+     * @param field\r
+     * @return\r
+     */\r
+    protected Object getFieldValue(ITmfEvent event, String field) {\r
+        Object value = null;\r
+        if (ITmfEvent.EVENT_FIELD_CONTENT.equals(field)) {\r
+            ITmfEventField content = event.getContent();\r
+            value = (content.getValue() != null) ? content.getValue().toString() : content.toString();\r
+        }\r
+        else if (ITmfEvent.EVENT_FIELD_TYPE.equals(field)) {\r
+            value = event.getType().getName();\r
+        }\r
+        else if (ITmfEvent.EVENT_FIELD_TIMESTAMP.equals(field)) {\r
+            value = ((Long) event.getTimestamp().getValue()).toString();\r
+        }\r
+        else if (ITmfEvent.EVENT_FIELD_SOURCE.equals(field)) {\r
+            value = event.getSource();\r
+        }\r
+        else if (ITmfEvent.EVENT_FIELD_REFERENCE.equals(field)) {\r
+            value = event.getReference();\r
+        }\r
+        else {\r
+            value = event.getContent().getField(field).getValue();\r
+        }\r
+        return value;\r
+    }\r
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.linuxtools.tmf.filter.model.ITmfFilterTreeNode#getValidChildren()\r
This page took 0.033751 seconds and 5 git commands to generate.