xml: Use equalsIgnoreCase for the 'cpu' field string
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Wed, 4 May 2016 19:45:11 +0000 (15:45 -0400)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Wed, 22 Jun 2016 02:16:18 +0000 (22:16 -0400)
Change-Id: Ia410993b506febb5be343c480020d88444a3cf59
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/72078
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/core/model/TmfXmlStateAttribute.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/core/model/TmfXmlStateValue.java

index c1f1de62f15c7733ccd5bbd4eae719a022a13377..aa31e945d6914c1a8d8c57698c2ee01aa889e42e 100644 (file)
@@ -223,32 +223,31 @@ public abstract class TmfXmlStateAttribute implements ITmfXmlStateAttribute {
                 if (name == null) {
                     throw new IllegalStateException("Invalid attribute name"); //$NON-NLS-1$
                 }
-                if (name.equals(TmfXmlStrings.CPU)) {
-                    /* See if the event advertises a CPU aspect */
-                    Integer cpu = TmfTraceUtils.resolveIntEventAspectOfClassForEvent(
-                            event.getTrace(), TmfCpuAspect.class, event);
-                    if (cpu != null) {
-                        quark = getQuarkRelativeAndAdd(startQuark, cpu.toString());
-                    }
-                } else {
-                    final ITmfEventField content = event.getContent();
-                    /* stop if the event field doesn't exist */
-                    if (content.getField(name) == null) {
-                        return IXmlStateSystemContainer.ERROR_QUARK;
+                /* First, look for a field with the given name */
+                ITmfEventField field = event.getContent().getField(name);
+                /* Field not found, see if it is a special case field */
+                if (field == null) {
+                    if (name.equalsIgnoreCase(TmfXmlStrings.CPU)) {
+                        /* See if the event advertises a CPU aspect */
+                        Integer cpu = TmfTraceUtils.resolveIntEventAspectOfClassForEvent(
+                                event.getTrace(), TmfCpuAspect.class, event);
+                        if (cpu != null) {
+                            return getQuarkRelativeAndAdd(startQuark, cpu.toString());
+                        }
                     }
+                    return IXmlStateSystemContainer.ERROR_QUARK;
+                }
+                Object fieldValue = field.getValue();
 
-                    Object field = content.getField(name).getValue();
-
-                    if (field instanceof String) {
-                        String fieldString = (String) field;
-                        quark = getQuarkRelativeAndAdd(startQuark, fieldString);
-                    } else if (field instanceof Long) {
-                        Long fieldLong = (Long) field;
-                        quark = getQuarkRelativeAndAdd(startQuark, fieldLong.toString());
-                    } else if (field instanceof Integer) {
-                        Integer fieldInterger = (Integer) field;
-                        quark = getQuarkRelativeAndAdd(startQuark, fieldInterger.toString());
-                    }
+                if (fieldValue instanceof String) {
+                    String fieldString = (String) fieldValue;
+                    quark = getQuarkRelativeAndAdd(startQuark, fieldString);
+                } else if (fieldValue instanceof Long) {
+                    Long fieldLong = (Long) fieldValue;
+                    quark = getQuarkRelativeAndAdd(startQuark, fieldLong.toString());
+                } else if (fieldValue instanceof Integer) {
+                    Integer fieldInterger = (Integer) fieldValue;
+                    quark = getQuarkRelativeAndAdd(startQuark, fieldInterger.toString());
                 }
                 return quark;
             }
index e7e8533a2949a6fea0b39434ff2e8535523dd37a..35a2d0143c2ee82c2b8acceea0ba6288da01a11b 100644 (file)
@@ -248,33 +248,36 @@ public abstract class TmfXmlStateValue implements ITmfXmlStateValue {
 
         ITmfStateValue value = TmfStateValue.nullValue();
 
-        final ITmfEventField content = event.getContent();
-
-        /* Exception for "CPU", returns the source of this event */
-        /* FIXME : Nameclash if a eventfield have "cpu" for name. */
-        if (fieldName.equals(TmfXmlStrings.CPU)) {
-            Integer cpu = TmfTraceUtils.resolveIntEventAspectOfClassForEvent(event.getTrace(), TmfCpuAspect.class, event);
-            if (cpu != null) {
-                return TmfStateValue.newValueInt(cpu.intValue());
+        final ITmfEventField field = event.getContent().getField(fieldName);
+
+        /* If the field does not exist, see if it's a special case */
+        if (field == null) {
+
+            if (fieldName.equalsIgnoreCase(TmfXmlStrings.CPU)) {
+                /* A "CPU" field will return the CPU aspect if available */
+                Integer cpu = TmfTraceUtils.resolveIntEventAspectOfClassForEvent(event.getTrace(), TmfCpuAspect.class, event);
+                if (cpu != null) {
+                    return TmfStateValue.newValueInt(cpu.intValue());
+                }
+            } else if (fieldName.equalsIgnoreCase(TmfXmlStrings.TIMESTAMP)) {
+                /*
+                 * Exception also for "TIMESTAMP", returns the timestamp of this
+                 * event
+                 */
+                return TmfStateValue.newValueLong(event.getTimestamp().getValue());
             }
-        }
-        /* Exception also for "TIMESTAMP", returns the timestamp of this event */
-        if (fieldName.equals(TmfXmlStrings.TIMESTAMP)) {
-            return TmfStateValue.newValueLong(event.getTimestamp().getValue());
-        }
-        if (content.getField(fieldName) == null) {
             return value;
         }
 
-        Object field = content.getField(fieldName).getValue();
+        Object fieldValue = field.getValue();
 
         /*
          * Try to find the right type. The type can be forced by
          * "forcedType" argument.
          */
 
-        if (field instanceof String) {
-            String fieldString = (String) field;
+        if (fieldValue instanceof String) {
+            String fieldString = (String) fieldValue;
 
             switch (fForcedType) {
             case INTEGER:
@@ -294,8 +297,8 @@ public abstract class TmfXmlStateValue implements ITmfXmlStateValue {
                 value = TmfStateValue.newValueString(fieldString);
                 break;
             }
-        } else if (field instanceof Long) {
-            Long fieldLong = (Long) field;
+        } else if (fieldValue instanceof Long) {
+            Long fieldLong = (Long) fieldValue;
 
             switch (fForcedType) {
             case INTEGER:
@@ -315,8 +318,8 @@ public abstract class TmfXmlStateValue implements ITmfXmlStateValue {
                 value = TmfStateValue.newValueLong(fieldLong);
                 break;
             }
-        } else if (field instanceof Integer) {
-            Integer fieldInteger = (Integer) field;
+        } else if (fieldValue instanceof Integer) {
+            Integer fieldInteger = (Integer) fieldValue;
 
             switch (fForcedType) {
             case LONG:
@@ -336,8 +339,8 @@ public abstract class TmfXmlStateValue implements ITmfXmlStateValue {
                 value = TmfStateValue.newValueInt(fieldInteger);
                 break;
             }
-        } else if (field instanceof Double) {
-            Double fieldDouble = (Double) field;
+        } else if (fieldValue instanceof Double) {
+            Double fieldDouble = (Double) fieldValue;
 
             switch (fForcedType) {
             case LONG:
This page took 0.026486 seconds and 5 git commands to generate.