/*******************************************************************************
- * Copyright (c) 2010 Ericsson
+ * Copyright (c) 2010, 2013 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
import java.util.Map;
import org.eclipse.linuxtools.internal.tmf.ui.parsers.custom.CustomTraceDefinition.OutputColumn;
-import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventType;
import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
+import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
+import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
/**
/** Empty message */
protected static final String NO_MESSAGE = ""; //$NON-NLS-1$
+ /** Replacement for the super-class' timestamp field */
+ private ITmfTimestamp customEventTimestamp;
+
+ /** Replacement for the super-class' content field */
+ private ITmfEventField customEventContent;
+
+ /** Replacement for the super-class' type field */
+ private ITmfEventType customEventType;
+
/** The trace to which this event belongs */
protected CustomTraceDefinition fDefinition;
super(other);
fDefinition = definition;
fData = new HashMap<String, String>();
+
+ /* Set our overridden fields */
+ customEventTimestamp = other.getTimestamp();
+ customEventContent = other.getContent();
+ customEventType = other.getType();
}
/**
public CustomEvent(CustomTraceDefinition definition, ITmfTrace parentTrace,
ITmfTimestamp timestamp, String source, TmfEventType type,
String reference) {
- super(parentTrace, timestamp, source, type, null, reference);
+ /* Do not use upstream's fields for stuff we override */
+ super(parentTrace, null, source, null, null, reference);
fDefinition = definition;
fData = new HashMap<String, String>();
+
+ /* Set our overridden fields */
+ customEventTimestamp = timestamp;
+ customEventContent = null;
+ customEventType = type;
}
+ // ------------------------------------------------------------------------
+ // Overridden getters
+ // ------------------------------------------------------------------------
+
@Override
public ITmfTimestamp getTimestamp() {
if (fData != null) {
processData();
}
- return super.getTimestamp();
+ return customEventTimestamp;
}
+ @Override
+ public ITmfEventField getContent() {
+ return customEventContent;
+ }
+
+ @Override
+ public ITmfEventType getType() {
+ return customEventType;
+ }
+
+ // ------------------------------------------------------------------------
+ // Setters
+ // ------------------------------------------------------------------------
+
+ /**
+ * Set this event's timestamp
+ *
+ * @param timestamp
+ * The new timestamp
+ */
+ protected void setTimestamp(ITmfTimestamp timestamp) {
+ customEventTimestamp = timestamp;
+ }
+
+ /**
+ * Set this event's content
+ *
+ * @param content
+ * The new content
+ */
+ protected void setContent(ITmfEventField content) {
+ customEventContent = content;
+ }
+
+ /**
+ * Set this event's type
+ *
+ * @param type
+ * The new type
+ */
+ protected void setType(ITmfEventType type) {
+ customEventType = type;
+ }
+
+ // ------------------------------------------------------------------------
+ // Other operations
+ // ------------------------------------------------------------------------
+
/**
* @return The event fields
*/
fData = null;
}
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((fDefinition == null) ? 0 : fDefinition.hashCode());
+ result = prime * result + ((customEventTimestamp == null) ? 0 : customEventTimestamp.hashCode());
+ result = prime * result + ((customEventContent == null) ? 0 : customEventContent.hashCode());
+ result = prime * result + ((customEventType == null) ? 0 : customEventType.hashCode());
return result;
}
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
@Override
public boolean equals(Object obj) {
if (this == obj) {
} else if (!fDefinition.equals(other.fDefinition)) {
return false;
}
+
+ if (customEventTimestamp == null) {
+ if (other.customEventTimestamp != null) {
+ return false;
+ }
+ } else if (!customEventTimestamp.equals(other.customEventTimestamp)) {
+ return false;
+ }
+
+ if (customEventContent == null) {
+ if (other.customEventContent != null) {
+ return false;
+ }
+ } else if (!customEventContent.equals(other.customEventContent)) {
+ return false;
+ }
+
+ if (customEventType == null) {
+ if (other.customEventType != null) {
+ return false;
+ }
+ } else if (!customEventType.equals(other.customEventType)) {
+ return false;
+ }
+
return true;
}