ctf: Throw CTFReaderException in the BitBuffer API
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core / src / org / eclipse / linuxtools / ctf / core / event / types / EnumDefinition.java
index 98ef3f48c9d578c0823f3dabdebb32d139c2394b..82d5230989c4a78c3cfaf7fb6c359f765d1364e2 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2012 Ericsson, Ecole Polytechnique de Montreal and others
+ * Copyright (c) 2011, 2013 Ericsson, Ecole Polytechnique de Montreal and others
  *
  * All rights reserved. This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License v1.0 which
@@ -12,7 +12,8 @@
 
 package org.eclipse.linuxtools.ctf.core.event.types;
 
-import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
+import org.eclipse.linuxtools.ctf.core.event.io.BitBuffer;
+import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
 
 /**
  * A CTF enum definition.
@@ -54,7 +55,7 @@ public class EnumDefinition extends SimpleDatatypeDefinition {
 
         integerValue = declaration.getContainerType().createDefinition(
                 definitionScope, fieldName);
-        value = ((Long) integerValue.getValue()).toString();
+        value = declaration.query(integerValue.getValue());
     }
 
     // ------------------------------------------------------------------------
@@ -85,11 +86,11 @@ public class EnumDefinition extends SimpleDatatypeDefinition {
 
     /**
      * Sets the value of the enum in string format so "Enum a{DAY="0", NIGHT="1"}; will set 0
-     * @param Value The value of the enum.
+     * @param value The value of the enum.
      */
-    public void setIntegerValue(long Value) {
-        integerValue.setValue(Value);
-        value = ((Long) integerValue.getValue()).toString();
+    public void setIntegerValue(long value) {
+        integerValue.setValue(value);
+        this.value = declaration.query(value);
     }
 
     @Override
@@ -102,10 +103,8 @@ public class EnumDefinition extends SimpleDatatypeDefinition {
     // ------------------------------------------------------------------------
 
     @Override
-    public void read(BitBuffer input) {
-        int align = (int) declaration.getAlignment();
-        int pos = input.position() + ((align-(input.position() % align))%align);
-        input.position(pos);
+    public void read(BitBuffer input) throws CTFReaderException {
+        alignRead(input, this.declaration);
         integerValue.read(input);
         long val = integerValue.getValue();
 
@@ -114,4 +113,10 @@ public class EnumDefinition extends SimpleDatatypeDefinition {
         value = declaration.query(val);
     }
 
+    @Override
+    public String toString() {
+        return "{ value = " + getValue() + //$NON-NLS-1$
+                ", container = " + integerValue.toString() + //$NON-NLS-1$
+                " }"; //$NON-NLS-1$
+    }
 }
This page took 0.029144 seconds and 5 git commands to generate.