package confuoco.encoding;

import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.encoding.Serializer;
import org.apache.axis.wsdl.fromJava.Types;
import org.w3c.dom.Element;
import org.xml.sax.Attributes;

import javax.xml.namespace.QName;
import java.io.IOException;

import confuoco.contentcontainer.ContentID;


public class ContentIDSerializer implements Serializer
{
	public static final String FINGERPRINTMEMBER = "fingerprint";
	public static final QName contentIDQName = new QName("http://encoding.confuoco", "ContentID");
	
	public void serialize(QName name, Attributes attributes, Object value, SerializationContext context)
		throws IOException
	{
		if (!(value instanceof ContentID))
			throw new IOException("Can't serialize a " + value.getClass().getName() + " with a ContentIDSerializer.");
			ContentID contentID = (ContentID)value;

		context.startElement(name, attributes);
		context.serialize(new QName("", FINGERPRINTMEMBER), null, contentID.fingerprint);
		context.endElement();
	}
	
	public String getMechanismType()
	{ 
		return Constants.AXIS_SAX; 
	}

    public Element writeSchema(Class javaType, Types types) throws Exception 
	{
        return null;
    }
}
