in blueprint/blueprint-parser/src/main/java/org/apache/aries/blueprint/parser/Parser.java [440:476]
public <T> T parseElement(Class<T> type, ComponentMetadata enclosingComponent, Element element) {
if (BeanArgument.class.isAssignableFrom(type)) {
return type.cast(parseBeanArgument(enclosingComponent, element));
} else if (BeanProperty.class.isAssignableFrom(type)) {
return type.cast(parseBeanProperty(enclosingComponent, element));
} else if (MapEntry.class.isAssignableFrom(type)) {
return type.cast(parseMapEntry(element, enclosingComponent, null, null));
} else if (MapMetadata.class.isAssignableFrom(type)) {
return type.cast(parseMap(element, enclosingComponent));
} else if (BeanMetadata.class.isAssignableFrom(type)) {
return type.cast(parseBeanMetadata(element, enclosingComponent == null));
} else if (NullMetadata.class.isAssignableFrom(type)) {
return type.cast(NullMetadata.NULL);
} else if (CollectionMetadata.class.isAssignableFrom(type)) {
return type.cast(parseCollection(Collection.class, element, enclosingComponent));
} else if (PropsMetadata.class.isAssignableFrom(type)) {
return type.cast(parseProps(element));
} else if (ReferenceMetadata.class.isAssignableFrom(type)) {
return type.cast(parseReference(element, enclosingComponent == null));
} else if (ReferenceListMetadata.class.isAssignableFrom(type)) {
return type.cast(parseRefList(element, enclosingComponent == null));
} else if (ServiceMetadata.class.isAssignableFrom(type)) {
return type.cast(parseService(element, enclosingComponent == null));
} else if (IdRefMetadata.class.isAssignableFrom(type)) {
return type.cast(parseIdRef(element));
} else if (RefMetadata.class.isAssignableFrom(type)) {
return type.cast(parseRef(element));
} else if (ValueMetadata.class.isAssignableFrom(type)) {
return type.cast(parseValue(element, null));
} else if (ReferenceListener.class.isAssignableFrom(type)) {
return type.cast(parseServiceListener(element, enclosingComponent));
} else if (Metadata.class.isAssignableFrom(type)) {
return type.cast(parseValueGroup(element, enclosingComponent, null, true));
} else {
throw new ComponentDefinitionException("Unknown type to parse element: " + type.getName());
}
}