private <X extends ConfiguredObject> void processAttributesTypesAndFields(final Class<X> clazz)
{
Map<String, ConfiguredObjectAttribute<?, ?>> attrMap = new TreeMap<>(NAME_COMPARATOR);
Map<String, AutomatedField> fieldMap = new HashMap<String, AutomatedField>();
Collection<ConfiguredObjectAttribute<?, ?>> attrCol = _allAttributes.get(clazz);
for (ConfiguredObjectAttribute<?, ?> attr : attrCol)
{
attrMap.put(attr.getName(), attr);
if (attr.isAutomated())
{
fieldMap.put(attr.getName(), findField(attr, clazz));
}
}
for (ConfiguredObjectAttributeInjector injector : _attributeInjectors)
{
for (ConfiguredObjectInjectedAttribute<?, ?> attr : injector.getInjectedAttributes())
{
if (!attrMap.containsKey(attr.getName())
&& attr.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
{
attrMap.put(attr.getName(), attr);
}
}
}
_allAttributeTypes.put(clazz, attrMap);
_allAutomatedFields.put(clazz, fieldMap);
}