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;
}
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:
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:
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:
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: