org.apache.axis.encoding.ser

Class BeanSerializer

Implemented Interfaces:
java.io.Serializable, Serializer, Serializer

public class BeanSerializer
extends java.lang.Object
implements Serializer, Serializable

General purpose serializer/deserializerFactory for an arbitrary java bean.
Authors:
Sam Ruby
Rich Scheuerle
Tom Jordahl

Field Summary

protected static Log
log
protected BeanPropertyDescriptor[]
propertyDescriptor
protected TypeDesc
typeDesc

Constructor Summary

BeanSerializer(Class javaType, QName xmlType)
BeanSerializer(Class javaType, QName xmlType, TypeDesc typeDesc)
BeanSerializer(Class javaType, QName xmlType, TypeDesc typeDesc, BeanPropertyDescriptor[] propertyDescriptor)

Method Summary

String
getMechanismType()
protected Attributes
getObjectAttributes(Object value, Attributes attributes, SerializationContext context)
Check for meta-data in the bean that will tell us if any of the properties are actually attributes, add those to the element attribute list
void
serialize(QName name, Attributes attributes, Object value, SerializationContext context)
Serialize a bean.
protected void
writeAttribute(Types types, String fieldName, Class fieldType, QName fieldXmlType, Element where)
write aa attribute element and append it to the 'where' Node
protected void
writeField(Types types, String fieldName, QName xmlType, Class fieldType, boolean isUnbounded, boolean isOmittable, Element where, boolean isAnonymous, QName itemQName)
write a schema representation of the given Class field and append it to the where Node, recurse on complex types
Element
writeSchema(Class javaType, Types types)
Return XML schema for the specified type, suitable for insertion into the <types> element of a WSDL document, or underneath an <element> or <attribute> declaration.

Field Details

log

protected static Log log

propertyDescriptor

protected BeanPropertyDescriptor[] propertyDescriptor

typeDesc

protected TypeDesc typeDesc

Constructor Details

BeanSerializer

public BeanSerializer(Class javaType,
                      QName xmlType)

BeanSerializer

public BeanSerializer(Class javaType,
                      QName xmlType,
                      TypeDesc typeDesc)

BeanSerializer

public BeanSerializer(Class javaType,
                      QName xmlType,
                      TypeDesc typeDesc,
                      BeanPropertyDescriptor[] propertyDescriptor)

Method Details

getMechanismType

public String getMechanismType()
Specified by:
getMechanismType in interface Serializer

getObjectAttributes

protected Attributes getObjectAttributes(Object value,
                                         Attributes attributes,
                                         SerializationContext context)
Check for meta-data in the bean that will tell us if any of the properties are actually attributes, add those to the element attribute list
Parameters:
value - the object we are serializing
Returns:
attributes for this element, null if none

serialize

public void serialize(QName name,
                      Attributes attributes,
                      Object value,
                      SerializationContext context)
            throws IOException
Serialize a bean. Done simply by serializing each bean property.
Specified by:
serialize in interface Serializer
Parameters:
name - is the element name
attributes - are the attributes...serialize is free to add more.
value - is the value
context - is the SerializationContext

writeAttribute

protected void writeAttribute(Types types,
                              String fieldName,
                              Class fieldType,
                              QName fieldXmlType,
                              Element where)
            throws Exception
write aa attribute element and append it to the 'where' Node
Parameters:
fieldName - name of the field
fieldType - type of the field
where - location for the generated schema node

writeField

protected void writeField(Types types,
                          String fieldName,
                          QName xmlType,
                          Class fieldType,
                          boolean isUnbounded,
                          boolean isOmittable,
                          Element where,
                          boolean isAnonymous,
                          QName itemQName)
            throws Exception
write a schema representation of the given Class field and append it to the where Node, recurse on complex types
Parameters:
fieldName - name of the field
xmlType - the schema type of the field
fieldType - type of the field
isUnbounded - causes maxOccurs="unbounded" if set
where - location for the generated schema node
itemQName -

writeSchema

public Element writeSchema(Class javaType,
                           Types types)
            throws Exception
Return XML schema for the specified type, suitable for insertion into the <types> element of a WSDL document, or underneath an <element> or <attribute> declaration.
Specified by:
writeSchema in interface Serializer
Parameters:
javaType - the Java Class we're writing out schema for
types - the Java2WSDL Types object which holds the context for the WSDL being generated.
Returns:
a type element containing a schema simpleType/complexType
See Also:
Types

Copyright © 2005 Apache Web Services Project. All Rights Reserved.