1 /*******************************************************************************
2 * Copyright (c) 2011-2012 Ericsson, Ecole Polytechnique de Montreal and others
4 * All rights reserved. This program and the accompanying materials are made
5 * available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
9 * Contributors: Matthew Khouzam - Initial API and implementation
10 * Contributors: Simon Marchi - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.ctf
.core
.event
.types
;
15 import org
.eclipse
.linuxtools
.internal
.ctf
.core
.event
.io
.BitBuffer
;
18 * <b><u>EnumDefinition</u></b>
20 public class EnumDefinition
extends Definition
{
22 // ------------------------------------------------------------------------
24 // ------------------------------------------------------------------------
26 private final EnumDeclaration declaration
;
28 private final IntegerDefinition integerValue
;
32 // ------------------------------------------------------------------------
34 // ------------------------------------------------------------------------
38 * @param declaration the parent declaration
39 * @param definitionScope the parent scope
40 * @param fieldName the field name
42 public EnumDefinition(EnumDeclaration declaration
,
43 IDefinitionScope definitionScope
, String fieldName
) {
44 super(definitionScope
, fieldName
);
46 this.declaration
= declaration
;
48 integerValue
= declaration
.getContainerType().createDefinition(
49 definitionScope
, fieldName
);
50 value
= ((Long
) integerValue
.getValue()).toString();
53 // ------------------------------------------------------------------------
54 // Getters/Setters/Predicates
55 // ------------------------------------------------------------------------
58 * Gets the value of the enum in string format so "Enum a{DAY="0", NIGHT="1"}; will return "DAY"
59 * @return the value of the enum.
61 public String
getValue() {
66 * Gets the value of the enum in string format so "Enum a{DAY="0", NIGHT="1"}; will return 0
67 * @return the value of the enum.
69 public long getIntegerValue() {
70 return integerValue
.getValue();
74 * Sets the value of the enum in string format so "Enum a{DAY="0", NIGHT="1"}; will set 0
75 * @param Value The value of the enum.
77 public void setIntegerValue(long Value
) {
78 integerValue
.setValue(Value
);
79 value
= ((Long
) integerValue
.getValue()).toString();
83 public EnumDeclaration
getDeclaration() {
87 // ------------------------------------------------------------------------
89 // ------------------------------------------------------------------------
92 public void read(BitBuffer input
) {
93 int align
= (int) declaration
.getAlignment();
94 int pos
= input
.position() + ((align
-(input
.position() % align
))%align
);
96 integerValue
.read(input
);
97 long val
= integerValue
.getValue();
99 // TODO: what to do if the integer value maps to no string for this
101 value
= declaration
.query(val
);