in lightning-core/src/main/java/org/apache/directmemory/lightning/base/AbstractSerializerDefinition.java [350:375]
public void acceptVisitor( DefinitionVisitor visitor )
{
MarshallerContext marshallers = combineMarshallers( AbstractSerializerDefinition.this );
List<PropertyDescriptor> propertyDescriptors =
typeIntrospector.introspect( classBinder.getType(), definitionBuildingContext.getMarshallerStrategy(),
marshallers, definitionBuildingContext.getPropertyDescriptorFactory() );
for ( PropertyDescriptor propertyDescriptor : propertyDescriptors )
{
Class<?> fieldType = propertyDescriptor.getType();
Marshaller marshaller = propertyDescriptor.getMarshaller();
visitor.visitAnnotatedAttribute( propertyDescriptor, marshaller );
if ( fieldType.isPrimitive() || fieldType.isArray() && fieldType.getComponentType().isPrimitive() )
{
continue;
}
visitor.visitClassDefine( !fieldType.isArray() ? fieldType : fieldType.getComponentType(), marshaller );
if ( marshaller == null )
{
visitFieldTypeAnnotatedProperties( !fieldType.isArray() ? fieldType : fieldType.getComponentType(),
visitor );
}
}
}