\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
* @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
\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
}\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
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
}\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
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
}\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
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
}\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
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
}\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
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
}\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
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
}\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
\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
}\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
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
}\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
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
* @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