in gshell-support/gshell-spring/src/main/java/org/apache/geronimo/gshell/spring/LoggingProcessor.java [454:537]
private void processValue(final Object value, final ElementBuilder builder, final boolean fullFormForReference, final boolean inMap) {
// well, I know that's ugly... but didn't find other way to resolve that
if (value instanceof BeanDefinition) {
processBeanDefinition(null, (BeanDefinition) value, builder, true);
}
else if (value instanceof BeanDefinitionHolder) {
BeanDefinitionHolder holder = (BeanDefinitionHolder) value;
processBeanDefinition(holder.getBeanName(), holder.getBeanDefinition(), builder, true);
}
else if (value instanceof RuntimeBeanReference) {
processRuntimeBeanReference(value, builder, fullFormForReference, inMap);
}
else if (value instanceof List) {
processList((List) value, builder);
}
else if (value instanceof Set) {
processSet((Set) value, builder);
}
else if (value instanceof Map) {
processMap((Map) value, builder);
}
else if (value instanceof TypedStringValue) {
TypedStringValue typedStringValue = (TypedStringValue) value;
String stringValue = typedStringValue.getValue();
if (fullFormForReference) {
builder.addChild(VALUE_ELEMENT);
}
if (stringValue != null) {
String targetTypeName = typedStringValue.getTargetTypeName();
if (!fullFormForReference && (targetTypeName != null)) {
builder.addChild(VALUE_ELEMENT);
builder.addAttribute(TYPE_ATTRIBUTE, targetTypeName);
builder.addPCData(stringValue);
builder.up();
}
else {
if (inMap) {
builder.addAttribute(VALUE_ATTRIBUTE, stringValue);
}
else {
builder.addPCData(stringValue);
}
}
}
else {
builder.addChild(NULL_ELEMENT);
builder.up();
}
if (fullFormForReference) {
builder.up();
}
}
else if (value instanceof String) {
if (fullFormForReference) {
builder.addChild(VALUE_ELEMENT);
builder.addPCData((String) value);
builder.up();
}
else {
builder.addAttribute(VALUE_ATTRIBUTE, (String) value);
}
}
else {
if (value == null) {
builder.addChild(NULL_ELEMENT);
builder.up();
}
else {
String str = value.toString();
if (fullFormForReference) {
builder.addChild(VALUE_ELEMENT);
builder.addPCData(str);
builder.up();
}
else {
builder.addAttribute(VALUE_ATTRIBUTE, str);
}
}
}
}