/*
 * JBoss, Home of Professional Open Source
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */
package org.jboss.xb.binding.sunday.unmarshalling;

import javax.xml.namespace.QName;
import javax.xml.namespace.NamespaceContext;
import org.xml.sax.Attributes;

/**
 * @author <a href="mailto:alex@jboss.org">Alexey Loubyansky</a>
 * @version <tt>$Revision: 1.1.2.2 $</tt>
 */
public interface ElementInterceptor
{
   Object startElement(Object parent, QName elementName, TypeBinding type);

   void attributes(Object o, QName elementName, TypeBinding type, Attributes attrs, NamespaceContext nsCtx);

   void characters(Object o, QName elementName, TypeBinding type, NamespaceContext nsCtx, String text);

   Object endElement(Object o, QName elementName, TypeBinding type);

   void add(Object o, Object child, QName qName);
}
