public void acceptVisitor()

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 );
                }
            }
        }