public NumberDefinitionInfo(IntegerAttributeType att) {
		super(att);
		try {
			String unit = null;
			String unscaledUnit = "";
			IntegerValueRange range = att.getRange();
			if(range != null) {
				unit = range.getUnit();
				double conversionFactor= range.getConversionFactor();
				if(conversionFactor != 1) {
					synchronized(_doubleNumberFormat) {
						unscaledUnit = "*" + _doubleNumberFormat.format(conversionFactor);
					}
				}
			}
			if(unit != null) {
				_unit = unit;
			}
			else {
				_unit = "";
			}

			if(unscaledUnit.equals("")) {
				_unscaledUnit = _unit;
			}
			else if(_unit.equals("")) {
				_unscaledUnit = unscaledUnit;
			}
			else {
				_unscaledUnit = unscaledUnit + " " + _unit;
			}

			List states= att.getStates();
			_value2StateMap = new HashMap(states.size());
			for(Iterator iterator = states.iterator(); iterator.hasNext();) {
				IntegerValueState state = (IntegerValueState)iterator.next();
				_value2StateMap.put(new Long(state.getValue()), state);
			}
		}
		catch(ConfigurationException e) {
			e.printStackTrace();
			throw new RuntimeException(e); 
		}

	}