public Map produceBasicFeatureData(FeatureTreeNode feature) { Map basicDataMap = new HashMap(); basicDataMap.put("feature_id", feature.getID()); basicDataMap.put("feature_name", getFeatureName(feature)); basicDataMap.put("feature_type", getFeatureType(feature)); basicDataMap.put("feature_level", feature.getLevel()); basicDataMap.put("feature_parentid", getFeatureParent(feature)); basicDataMap.put("feature_decision", "" + feature.getValue()); basicDataMap.put( "feature_decisionType", feature.getValue() == -1 ? "" : (String) feature.getProperty("decisionType")); // manual, propagated, auto-completion basicDataMap.put( "feature_decisionStep", feature.getValue() == -1 ? "" : (String) feature.getProperty("decisionStep")); basicDataMap.put( "feature_previousDecisionStep", feature.getValue() == -1 ? "" : "" + (Integer.valueOf((String) feature.getProperty("decisionStep")) - 1)); basicDataMap.put("feature_has_children", feature.getChildCount() > 0); basicDataMap.put("feature_group_min", -1); basicDataMap.put("feature_group_max", -1); if (feature instanceof FeatureGroup) { FeatureGroup group = (FeatureGroup) feature; int min = group.getMin(); int max = group.getMax(); basicDataMap.put("feature_group_min", min); basicDataMap.put("feature_group_max", max == -1 ? group.getChildCount() : max); } return basicDataMap; }