return null;
}
Class componentType = ((Class) type).getComponentType();
EventType nestedEventType = eventAdapterService.addBeanType(componentType.getName(), componentType, false, false, false);
final BeanEventPropertyGetter nestedGetter = (BeanEventPropertyGetter) nestedEventType.getGetter(propertyNested);
if (nestedGetter == null)
{
return null;
}
Class propertyTypeGetter = nestedEventType.getPropertyType(propertyNested);
// construct getter for nested property
EventPropertyGetter indexGetter = factory.getGetterIndexedEntryPOJO(indexedProp.getPropertyNameAtomic(), indexedProp.getIndex(), nestedGetter, eventAdapterService, propertyTypeGetter);
propertyGetterCache.put(propertyName, indexGetter);
return indexGetter;
}
}
else if (property instanceof MappedProperty)
{
return null; // Since no type information is available for the property
}
else
{
return null;
}
}
// The map contains another map, we resolve the property dynamically
if (nestedType == Map.class)
{
Property prop = PropertyParser.parse(propertyNested, isRootedDynamic);
MapEventPropertyGetter getterNestedMap = prop.getGetterMap(null, eventAdapterService);
if (getterNestedMap == null)
{
return null;
}
EventPropertyGetter mapGetter = factory.getGetterNestedMapProp(propertyMap, getterNestedMap);
propertyGetterCache.put(propertyName, mapGetter);
return mapGetter;
}
else if (nestedType instanceof Map)
{
Property prop = PropertyParser.parse(propertyNested, isRootedDynamic);
Map nestedTypes = (Map) nestedType;
MapEventPropertyGetter getterNestedMap = prop.getGetterMap(nestedTypes, eventAdapterService);
if (getterNestedMap == null)
{
return null;
}
EventPropertyGetter mapGetter = factory.getGetterNestedMapProp(propertyMap, getterNestedMap);
propertyGetterCache.put(propertyName, mapGetter);
return mapGetter;
}
else if (nestedType instanceof Class)
{
// ask the nested class to resolve the property
Class simpleClass = (Class) nestedType;
EventType nestedEventType = eventAdapterService.addBeanType(simpleClass.getName(), simpleClass, false, false, false);
final BeanEventPropertyGetter nestedGetter = (BeanEventPropertyGetter) nestedEventType.getGetter(propertyNested);
if (nestedGetter == null)
{
return null;
}
Class nestedReturnType = nestedEventType.getPropertyType(propertyNested);