public Map<Integer, AttributeValue> getAttributeValues(InstanceIndexer instanceIndexer) throws MLException { Map<Integer, AttributeValue> attributeValues = null; if (instanceIndexer.getAttributeName() != null) { AttributeDO[] attributeDOs = getAttributesByName(instanceIndexer.getAttributeName()); AttributeDO[] classAttributes = getAttributesByName(Instances.CLASS_NAME); Map<Integer, AttributeValue> discreteValuesMap = new HashMap<Integer, AttributeValue>(); for (int index = 0; index < attributeDOs.length; index++) { if (instanceIndexer.getIndexes().contains(index)) { String name = attributeDOs[index].getName(); Integer value = attributeDOs[index].getValue(); AttributeDO classAttributeDO = classAttributes[index]; if (discreteValuesMap.containsKey(value)) { discreteValuesMap.put( value, discreteValuesMap .get(value) .incrementAttributeValueCount() .insertOrIncrementClassifiedCountMap(classAttributeDO.getValue())); } else { discreteValuesMap.put( value, new AttributeValue(name, value, 1) .insertOrIncrementClassifiedCountMap(classAttributeDO.getValue())); } } } attributeValues = discreteValuesMap; // bug fix : if there is only one type of instance attribute type, and hence only one entry in // map. if (attributeValues.size() == 1) { if (attributeValues.keySet().contains(1)) { discreteValuesMap.put( 0, new AttributeValue(attributeValues.get(1).getAttributeName(), 0, 0)); } else { discreteValuesMap.put( 1, new AttributeValue(attributeValues.get(0).getAttributeName(), 1, 0)); } } } else { throw new MLException( "No attribute name mentioned in Indexer, hence cannot provide attribute values !"); } return attributeValues; }
public Map<Integer, AttributeValue> getAttributeValues(String attributeName) throws MLException { AttributeDO[] attributes = getAttributesByName(attributeName); Map<Integer, AttributeValue> discreteValuesMap = new HashMap<Integer, AttributeValue>(); for (AttributeDO attribute : attributes) { String name = attribute.getName(); Integer value = attribute.getValue(); if (discreteValuesMap.containsKey(value)) discreteValuesMap.put(value, discreteValuesMap.get(value).incrementAttributeValueCount()); else discreteValuesMap.put(value, new AttributeValue(name, value, 1)); } return discreteValuesMap; }
@Override public void jdoPostLoad() { boardPackage = CacheInstance.getInstance().getPackage(packageKey); elements = new HashMap<Key, ElementDO>(); attributes = new HashMap<Key, AttributeDO>(); cards = new HashMap<Key, MetaCardDO>(); skills = new HashMap<Key, SkillDO>(); for (Element element : boardPackage.getElements()) { ElementDO elementDo = (ElementDO) element; elements.put(elementDo.getKey(), elementDo); for (AttributeDO attributeDo : elementDo.getAttributes()) { attributes.put(attributeDo.getKey(), attributeDo); } for (MetaCardDO card : elementDo.getCards()) { cards.put(card.getKey(), card); for (Skill skill : card.getSkills()) { SkillDO skillDo = (SkillDO) skill; skills.put(skillDo.getKey(), skillDo); } } } for (PlayerRecordDO player : players) player.restore(this); addActionListener(boardPackage.getRule(), this); }