public String getFieldNameForItemTypeAndName()

in xstream/src/java/com/thoughtworks/xstream/mapper/ImplicitCollectionMapper.java [163:190]


        public String getFieldNameForItemTypeAndName(final Class<?> itemType, final String itemFieldName) {
            ImplicitCollectionMappingImpl unnamed = null;
            for (final NamedItemType itemTypeForFieldName : namedItemTypeToDef.keySet()) {
                final ImplicitCollectionMappingImpl def = namedItemTypeToDef.get(itemTypeForFieldName);
                if (itemType == Mapper.Null.class) {
                    unnamed = def;
                    break;
                } else if (itemTypeForFieldName.itemType.isAssignableFrom(itemType)) {
                    if (def.getItemFieldName() != null) {
                        if (def.getItemFieldName().equals(itemFieldName)) {
                            return def.getFieldName();
                        }
                    } else {
                        if (unnamed == null
                            || unnamed.getItemType() == null
                            || def.getItemType() != null && unnamed.getItemType().isAssignableFrom(def.getItemType())) {
                            unnamed = def;
                        }
                    }
                }
            }
            if (unnamed != null) {
                return unnamed.getFieldName();
            } else {
                final ImplicitCollectionMapperForClass mapper = getMapper(definedIn.getSuperclass(), null);
                return mapper != null ? mapper.getFieldNameForItemTypeAndName(itemType, itemFieldName) : null;
            }
        }