[embjopr-commits] EMBJOPR SVN: r660 - trunk/core/src/main/java/org/jboss/on/embedded/bean.
embjopr-commits at lists.jboss.org
embjopr-commits at lists.jboss.org
Mon Aug 10 04:19:13 EDT 2009
Author: fdrabek
Date: 2009-08-10 04:19:12 -0400 (Mon, 10 Aug 2009)
New Revision: 660
Modified:
trunk/core/src/main/java/org/jboss/on/embedded/bean/MeasurementUtils.java
Log:
EMBJOPR-231 The metric value of type Double with no unit selected in plugin will be not converted to Integer.
Modified: trunk/core/src/main/java/org/jboss/on/embedded/bean/MeasurementUtils.java
===================================================================
--- trunk/core/src/main/java/org/jboss/on/embedded/bean/MeasurementUtils.java 2009-08-08 22:06:34 UTC (rev 659)
+++ trunk/core/src/main/java/org/jboss/on/embedded/bean/MeasurementUtils.java 2009-08-10 08:19:12 UTC (rev 660)
@@ -43,186 +43,209 @@
/**
* Utility class to retrieve the Measurement information for the give resource
- *
+ *
* @author Jessica Sant
* @author Ian Springer
*/
-public class MeasurementUtils
-{
- /**
- * the resource being displayed on the metric tab
- */
- private ResourceListItem resource;
+public class MeasurementUtils {
+ /**
+ * the resource being displayed on the metric tab
+ */
+ private ResourceListItem resource;
- /**
- * this resource's type
- */
- private ResourceType resourceType;
+ /**
+ * this resource's type
+ */
+ private ResourceType resourceType;
- /**
- * a map of the resource's metric definitions, keyed off the definition names
- */
- private Map<String, MeasurementDefinition> measurementDefinitionMap = new HashMap<String, MeasurementDefinition>();
+ /**
+ * a map of the resource's metric definitions, keyed off the definition
+ * names
+ */
+ private Map<String, MeasurementDefinition> measurementDefinitionMap = new HashMap<String, MeasurementDefinition>();
- public MeasurementUtils(ResourceListItem resource)
- {
- this.resource = resource;
- this.resourceType = this.resource.getResource().getResourceType();
- this.measurementDefinitionMap = new HashMap();
- Set<MeasurementDefinition> metricDefinitions = this.resourceType.getMetricDefinitions();
- for (MeasurementDefinition measurementDefinition : metricDefinitions)
- {
- if (!measurementDefinition.isPerMinute())
- // Filter out per-minute metrics, since we don't support them in embedded for the time being.
- // This is also important, since we key off the metric names, and a per-minute metric has the
- // same name as its corresponding raw TRENDSUP/TRENDSDOWN metric.
- measurementDefinitionMap.put(measurementDefinition.getName(), measurementDefinition);
- }
- }
+ public MeasurementUtils(ResourceListItem resource) {
+ this.resource = resource;
+ this.resourceType = this.resource.getResource().getResourceType();
+ this.measurementDefinitionMap = new HashMap();
+ Set<MeasurementDefinition> metricDefinitions = this.resourceType
+ .getMetricDefinitions();
+ for (MeasurementDefinition measurementDefinition : metricDefinitions) {
+ if (!measurementDefinition.isPerMinute())
+ // Filter out per-minute metrics, since we don't support them in
+ // embedded for the time being.
+ // This is also important, since we key off the metric names,
+ // and a per-minute metric has the
+ // same name as its corresponding raw TRENDSUP/TRENDSDOWN
+ // metric.
+ measurementDefinitionMap.put(measurementDefinition.getName(),
+ measurementDefinition);
+ }
+ }
- /**
- * Loads the metric values for the current Resource, optionally filtered by display type and/or data type.
- *
- * @param displayType the display type (summary or detail) that the returned metrics should have. Null if any
- * display type should be returned.
- * @param dataType the data type (measurement or trait) that the returned metrics should have. Null if any data
- * type should be returned.
- * @return a set of all metrics that have the given display type and data type
- */
- public
- @Nullable
- List<MeasurementData> loadMeasurementData(@Nullable DisplayType displayType, DataType dataType)
- {
- Map<String, MeasurementDefinition> requestedMetricDefs = new HashMap();
+ /**
+ * Loads the metric values for the current Resource, optionally filtered by
+ * display type and/or data type.
+ *
+ * @param displayType
+ * the display type (summary or detail) that the returned metrics
+ * should have. Null if any display type should be returned.
+ * @param dataType
+ * the data type (measurement or trait) that the returned metrics
+ * should have. Null if any data type should be returned.
+ * @return a set of all metrics that have the given display type and data
+ * type
+ */
+ public @Nullable
+ List<MeasurementData> loadMeasurementData(
+ @Nullable DisplayType displayType, DataType dataType) {
+ Map<String, MeasurementDefinition> requestedMetricDefs = new HashMap();
- // Get the definitions of the requested measurements.
- for (MeasurementDefinition metricDef : this.measurementDefinitionMap.values())
- {
- if (displayType != null && dataType != null)
- {
- if (metricDef.getDisplayType().equals(displayType) && metricDef.getDataType().equals(dataType))
- requestedMetricDefs.put(metricDef.getName(), metricDef);
- }
- else if (dataType != null)
- {
- if (metricDef.getDataType().equals(dataType))
- requestedMetricDefs.put(metricDef.getName(), metricDef);
- }
- else if (displayType != null)
- {
- if (metricDef.getDisplayType().equals(displayType))
- requestedMetricDefs.put(metricDef.getName(), metricDef);
- }
- }
+ // Get the definitions of the requested measurements.
+ for (MeasurementDefinition metricDef : this.measurementDefinitionMap
+ .values()) {
+ if (displayType != null && dataType != null) {
+ if (metricDef.getDisplayType().equals(displayType)
+ && metricDef.getDataType().equals(dataType))
+ requestedMetricDefs.put(metricDef.getName(), metricDef);
+ } else if (dataType != null) {
+ if (metricDef.getDataType().equals(dataType))
+ requestedMetricDefs.put(metricDef.getName(), metricDef);
+ } else if (displayType != null) {
+ if (metricDef.getDisplayType().equals(displayType))
+ requestedMetricDefs.put(metricDef.getName(), metricDef);
+ }
+ }
- // Get the actual data for the requested measurements.
- MeasurementAgentService measurementAgentService = PluginContainer.getInstance().getMeasurementAgentService();
- int resourceId = this.resource.getResource().getId();
- String[] measurementNamesArray = requestedMetricDefs.keySet().toArray(new String[requestedMetricDefs.size()]);
- Set<MeasurementData> measurementDataSet = measurementAgentService.getRealTimeMeasurementValue(resourceId, dataType, measurementNamesArray);
- // @TODO when displayOrder is implemented this should use displayOrder, but right now the displayOrder
- // for all MeasurementData is set to "0" which will cause only the last object of the set to be
- // put into the TreeSet due to the semantics of TreeSet which does not implement the Set interface correctly.
- List<MeasurementData> measurementDataList = null;
- if (measurementDataSet != null)
- {
- measurementDataList = new ArrayList<MeasurementData>(measurementDataSet);
- Collections.sort(measurementDataList, new MeasurementComparator(requestedMetricDefs));
- }
- return measurementDataList;
- }
+ // Get the actual data for the requested measurements.
+ MeasurementAgentService measurementAgentService = PluginContainer
+ .getInstance().getMeasurementAgentService();
+ int resourceId = this.resource.getResource().getId();
+ String[] measurementNamesArray = requestedMetricDefs.keySet().toArray(
+ new String[requestedMetricDefs.size()]);
+ Set<MeasurementData> measurementDataSet = measurementAgentService
+ .getRealTimeMeasurementValue(resourceId, dataType,
+ measurementNamesArray);
+ // @TODO when displayOrder is implemented this should use displayOrder,
+ // but right now the displayOrder
+ // for all MeasurementData is set to "0" which will cause only the last
+ // object of the set to be
+ // put into the TreeSet due to the semantics of TreeSet which does not
+ // implement the Set interface correctly.
+ List<MeasurementData> measurementDataList = null;
+ if (measurementDataSet != null) {
+ measurementDataList = new ArrayList<MeasurementData>(
+ measurementDataSet);
+ Collections.sort(measurementDataList, new MeasurementComparator(
+ requestedMetricDefs));
+ }
+ return measurementDataList;
+ }
- /**
- * returns a list of all categories used on this page. This method also loads the measuremntDataList and the
- * measurementDataMap (a map of
- *
- * @param measurementDefinitionMap
- * @param measurementDataList
- * @param measurementDisplayMap
- * @return
- */
- public
- @NotNull
- List<String> loadCategoryList(@NotNull Map<String, MeasurementDefinition> measurementDefinitionMap,
- @Nullable List<MeasurementData> measurementDataList,
- @NotNull Map<String, List<MeasurementDisplay>> measurementDisplayMap)
- {
-// measurementDisplayMap = new HashMap<String, List<MeasurementDisplay>>();
+ /**
+ * returns a list of all categories used on this page. This method also
+ * loads the measuremntDataList and the measurementDataMap (a map of
+ *
+ * @param measurementDefinitionMap
+ * @param measurementDataList
+ * @param measurementDisplayMap
+ * @return
+ */
+ public @NotNull
+ List<String> loadCategoryList(
+ @NotNull Map<String, MeasurementDefinition> measurementDefinitionMap,
+ @Nullable List<MeasurementData> measurementDataList,
+ @NotNull Map<String, List<MeasurementDisplay>> measurementDisplayMap) {
+ // measurementDisplayMap = new HashMap<String,
+ // List<MeasurementDisplay>>();
- if (measurementDataList != null)
- {
- for (MeasurementData measurementData : measurementDataList)
- {
- MeasurementDefinition measurementDefinition = measurementDefinitionMap.get(measurementData.getName());
- String category = measurementDefinition.getCategory().toString();
- List<MeasurementDisplay> list = measurementDisplayMap.get(category);
+ if (measurementDataList != null) {
+ for (MeasurementData measurementData : measurementDataList) {
+ MeasurementDefinition measurementDefinition = measurementDefinitionMap
+ .get(measurementData.getName());
+ String category = measurementDefinition.getCategory()
+ .toString();
+ List<MeasurementDisplay> list = measurementDisplayMap
+ .get(category);
- if (list == null)
- {
- list = new ArrayList<MeasurementDisplay>();
- measurementDisplayMap.put(category, list);
- }
+ if (list == null) {
+ list = new ArrayList<MeasurementDisplay>();
+ measurementDisplayMap.put(category, list);
+ }
- list.add(createMeasurementDisplay(measurementData, measurementDefinition));
- }
- }
- return new ArrayList<String>(measurementDisplayMap.keySet());
- }
+ list.add(createMeasurementDisplay(measurementData,
+ measurementDefinition));
+ }
+ }
+ return new ArrayList<String>(measurementDisplayMap.keySet());
+ }
- /**
- * creates the measurementDisplay items to be used to display the formatted values
- *
- * @param measurementData
- * @param measurementDefinition
- * @return
- */
- public MeasurementDisplay createMeasurementDisplay(MeasurementData measurementData, MeasurementDefinition measurementDefinition)
- {
- MeasurementDisplay measurementDisplay = new MeasurementDisplay(measurementData, measurementDefinition);
- measurementDisplay.getMeasurementDefinition().getUnits();
+ /**
+ * creates the measurementDisplay items to be used to display the formatted
+ * values
+ *
+ * @param measurementData
+ * @param measurementDefinition
+ * @return
+ */
+ public MeasurementDisplay createMeasurementDisplay(
+ MeasurementData measurementData,
+ MeasurementDefinition measurementDefinition) {
+ MeasurementDisplay measurementDisplay = new MeasurementDisplay(
+ measurementData, measurementDefinition);
+ measurementDisplay.getMeasurementDefinition().getUnits();
- // TODO: send in the current Locale
- if (measurementDisplay.getMeasurementData().getValue() instanceof Double)
- {
- try
- {
- double dataValue = (Double)measurementDisplay.getMeasurementData().getValue();
- MeasurementUnits units = measurementDisplay.getMeasurementDefinition().getUnits();
- MeasurementNumericValueAndUnits dataValueAndUnits;
- if (units == MeasurementUnits.NONE)
- dataValueAndUnits = new MeasurementIntegerValueAndUnits(dataValue, units);
- else
- dataValueAndUnits = MeasurementConverter.fit(dataValue, units);
- measurementDisplay.setMeasurementValueAndUnits(dataValueAndUnits);
- }
- catch (MeasurementConversionException mce)
- {
- /*
- * this should normally never happen because the data is coming from the
- * database where it's already been validated by the model constraits, but
- * it's possible that we missed something somewhere else in the system or
- * that someone purposefully tried to harm the data; in this case, don't
- * blow up
- *
- * TODO: add logging so we know when / if this error occurs
- */
- measurementDisplay.setMeasurementValueAndUnits(MeasurementNumericValueAndUnits.ERROR);
- }
- }
- // if its a string -- just save the string into the Formatted value display
- else if (measurementDisplay.getMeasurementData().getValue() instanceof String)
- {
- String dataValue = (String)measurementDisplay.getMeasurementData().getValue();
+ // TODO: send in the current Locale
+ if (measurementDisplay.getMeasurementData().getValue() instanceof Double) {
+ try {
+ double dataValue = (Double) measurementDisplay
+ .getMeasurementData().getValue();
+ MeasurementUnits units = measurementDisplay
+ .getMeasurementDefinition().getUnits();
+ MeasurementNumericValueAndUnits dataValueAndUnits;
+ if (units == MeasurementUnits.NONE) {
+ Double dbl = Double.valueOf(dataValue);
+ if (dataValue != dbl.intValue())
+ dataValueAndUnits = MeasurementConverter.fit(dataValue,
+ units);
+ else
+ dataValueAndUnits = new MeasurementIntegerValueAndUnits(
+ dataValue, units);
+ } else
+ dataValueAndUnits = MeasurementConverter.fit(dataValue,
+ units);
+ measurementDisplay
+ .setMeasurementValueAndUnits(dataValueAndUnits);
+ } catch (MeasurementConversionException mce) {
+ /*
+ * this should normally never happen because the data is coming
+ * from the database where it's already been validated by the
+ * model constraits, but it's possible that we missed something
+ * somewhere else in the system or that someone purposefully
+ * tried to harm the data; in this case, don't blow up
+ *
+ * TODO: add logging so we know when / if this error occurs
+ */
+ measurementDisplay
+ .setMeasurementValueAndUnits(MeasurementNumericValueAndUnits.ERROR);
+ }
+ }
+ // if its a string -- just save the string into the Formatted value
+ // display
+ else if (measurementDisplay.getMeasurementData().getValue() instanceof String) {
+ String dataValue = (String) measurementDisplay.getMeasurementData()
+ .getValue();
- measurementDisplay.setMeasurementValueAndUnits(new MeasurementStringValueAndUnits(dataValue, MeasurementUnits.NONE));
- }
+ measurementDisplay
+ .setMeasurementValueAndUnits(new MeasurementStringValueAndUnits(
+ dataValue, MeasurementUnits.NONE));
+ }
- return measurementDisplay;
- }
+ return measurementDisplay;
+ }
- public Map<String, MeasurementDefinition> getMeasurementDefinitionMap()
- {
- return measurementDefinitionMap;
+ public Map<String, MeasurementDefinition> getMeasurementDefinitionMap() {
+ return measurementDefinitionMap;
- }
+ }
}
More information about the embjopr-commits
mailing list