[jboss-svn-commits] JBoss Common SVN: r3903 - in jbossxb/trunk/src/main/java/org/jboss/xb/binding: parser and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jan 7 10:25:28 EST 2010


Author: alex.loubyansky at jboss.com
Date: 2010-01-07 10:25:27 -0500 (Thu, 07 Jan 2010)
New Revision: 3903

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/ObjectModelBuilder.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/UnmarshallerImpl.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/JBossXBParser.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/sax/SaxJBossXBParser.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/AbstractPosition.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/ElementPosition.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/NonElementPosition.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/Position.java
Log:
clean-up unused methods, method parameters, few minor optimizations

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/ObjectModelBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/ObjectModelBuilder.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/ObjectModelBuilder.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -336,8 +336,7 @@
    public void startElement(String namespaceURI,
                             String localName,
                             String qName,
-                            Attributes atts,
-                            XSTypeDefinition type)
+                            Attributes atts)
    {
       Object parent = accepted.isEmpty() ? root : peekAccepted();
 

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/UnmarshallerImpl.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/UnmarshallerImpl.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/UnmarshallerImpl.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -43,7 +43,7 @@
  */
 public class UnmarshallerImpl implements Unmarshaller
 {
-   private ObjectModelBuilder builder = new ObjectModelBuilder();
+   private ObjectModelBuilder builder;
    private final JBossXBParser parser;
 
    // Constructor

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/JBossXBParser.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/JBossXBParser.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/JBossXBParser.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -24,7 +24,6 @@
 import java.io.InputStream;
 import java.io.Reader;
 
-import org.apache.xerces.xs.XSTypeDefinition;
 import org.jboss.xb.binding.JBossXBException;
 import org.xml.sax.Attributes;
 import org.xml.sax.EntityResolver;
@@ -42,7 +41,7 @@
 
       void endElement(String namespaceURI, String localName, String qName);
 
-      void startElement(String namespaceURI, String localName, String qName, Attributes atts, XSTypeDefinition type);
+      void startElement(String namespaceURI, String localName, String qName, Attributes atts);
 
       void startPrefixMapping(String prefix, String uri);
 

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/sax/SaxJBossXBParser.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/sax/SaxJBossXBParser.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/parser/sax/SaxJBossXBParser.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -23,7 +23,6 @@
 
 import java.io.InputStream;
 import java.io.Reader;
-import java.lang.reflect.Method;
 
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
@@ -56,7 +55,15 @@
    {
       saxFactory.setValidating(true);
       saxFactory.setNamespaceAware(true);
-      enableXInclude();
+
+      try
+      {
+         saxFactory.setXIncludeAware(true);
+      }
+      catch (UnsupportedOperationException e)
+      {
+         log.trace("setXIncludeAware is not supported by the SAXParserFactory", e);
+      }
    }
 
    private final SAXParser parser;
@@ -65,32 +72,12 @@
    private DelegatingContentHandler delegateHandler;
    private boolean trace;
 
-   /**
-    * Enables XInclude if the saxFactory supports it.<p>
-    * 
-    * NOTE: Checks the real factory class, not the JAXP interface.
-    */
-   private static void enableXInclude()
-   {
-      try
-      {
-         Class<? extends SAXParserFactory> clazz = saxFactory.getClass();
-         Method method = clazz.getMethod("setXIncludeAware", new Class[] { Boolean.TYPE });
-         method.invoke(saxFactory, new Object[] { Boolean.TRUE });
-      }
-      catch (Exception e)
-      {
-         log.trace("Not setting XIncludeAware", e);
-      }
-   }
-   
    public SaxJBossXBParser()
       throws JBossXBException
    {
       try
       {
          parser = saxFactory.newSAXParser();
-         logParserInfo();
       }
       catch(Exception e)
       {
@@ -117,7 +104,7 @@
       }
       catch(Exception e)
       {
-         log.debug("LexicalHandler", e);
+         log.trace("LexicalHandler", e);
       }
 
 /*
@@ -154,7 +141,8 @@
       try
       {
          reader.setFeature(name, value);
-         log.debug(name+" set to: "+reader.getFeature(name));
+         if(trace)
+            log.trace(name+" set to: "+reader.getFeature(name));
       }
       catch(SAXException e)
       {
@@ -166,8 +154,9 @@
    {
       this.contentHandler = handler;
       trace = log.isTraceEnabled();
-
-      logParserInfo();
+      if(trace)
+         logParserInfo();
+      
       try
       {
          reader.parse(systemId);
@@ -192,8 +181,9 @@
    {
       this.contentHandler = handler;
       trace = log.isTraceEnabled();
-      
-      logParserInfo();
+      if(trace)
+         logParserInfo();
+
       try
       {
          reader.parse(source);
@@ -238,7 +228,7 @@
       {
          sb.append("unsupported operation '").append(e.getMessage()).append('\'');
       }
-      log.debug(sb.toString());
+      log.trace(sb.toString());
    }
 
    // Inner
@@ -355,58 +345,41 @@
 
       public void endElement(String namespaceURI, String localName, String qName)
       {
-         String name = null;
          if(trace)
          {
-            if(localName.length() == 0)
+            String name = localName.length() == 0 ? qName : namespaceURI + ':' + localName;
+            log.trace("Enter endElement " + name);
+            try
             {
-               name = qName;
+               contentHandler.endElement(namespaceURI, localName, qName);
             }
-            else
+            finally
             {
-               name = namespaceURI + ':' + localName;
-            }
-            log.trace("Enter endElement " + name);
-         }
-         try
-         {
-            contentHandler.endElement(namespaceURI, localName, qName);
-         }
-         finally
-         {
-            if(trace)
-            {
                log.trace("Exit endElement  " + name);
             }
          }
+         else
+            contentHandler.endElement(namespaceURI, localName, qName);
       }
 
       public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
       {
-         String name = null;
          if(trace)
          {
-            if(localName.length() == 0)
+            String name = localName.length() == 0 ? qName : namespaceURI + ':' + localName;
+            log.trace("Enter startElement " + name);
+            
+            try
             {
-               name = qName;
+               contentHandler.startElement(namespaceURI, localName, qName, atts);
             }
-            else
+            finally
             {
-               name = namespaceURI + ':' + localName;
-            }
-            log.trace("Enter startElement " + name);
-         }
-         try
-         {
-            contentHandler.startElement(namespaceURI, localName, qName, atts, null);
-         }
-         finally
-         {
-            if(trace)
-            {
                log.trace("Exit startElement  " + name);
             }
          }
+         else
+            contentHandler.startElement(namespaceURI, localName, qName, atts);
       }
    }
 

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -120,9 +120,10 @@
                   next.setPrevious(this);
                   ++occurrence;
 
-                  endParticle();
+                  o = handler.endParticle(o, qName, particle);
+                  if(previous.getValue() != null)
+                     setParent(previous, handler);
                   initValue(atts);
-                  ended = false;
 
                   if (trace)
                      log.trace("found " + qName + " in " + ChoiceBinding.this + ", term=" + choice.getTerm());

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -153,9 +153,10 @@
                   next.setPrevious(this);
                   ++occurrence;
 
-                  endParticle();
+                  o = handler.endParticle(o, qName, particle);
+                  if(previous.getValue() != null)
+                     setParent(previous, handler);
                   initValue(atts);
-                  ended = false;
 
                   if(trace)
                      log.trace("found " + qName + " in " + SequenceBinding.this);

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -24,7 +24,6 @@
 import java.lang.reflect.Method;
 
 import javax.xml.namespace.QName;
-import org.apache.xerces.xs.XSTypeDefinition;
 import org.jboss.logging.Logger;
 import org.jboss.xb.binding.AttributesImpl;
 import org.jboss.xb.binding.Constants;
@@ -97,10 +96,10 @@
 
    public void characters(char[] ch, int start, int length)
    {
-      Position position = head;
-      if(!position.isElement())
+      if(!head.isElement())
          return;
-      
+
+      Position position = head;
       // if current is ended the characters belong to its parent
       if(position.isEnded())
       {
@@ -132,16 +131,16 @@
                head.endParticle();
                break;
             }
+            
+            // assert head.isEnded() == true
+            if(head.getRepeatableParticleValue() != null)
+               head.endRepeatableParticle();
          }
          else
          {
             head.endParticle();
          }
 
-         // assert head.isEnded() == true
-         if(head.getRepeatableParticleValue() != null)
-            head.endRepeatableParticle();
-
          head = head.getPrevious();
       }
 
@@ -152,8 +151,7 @@
    public void startElement(String namespaceURI,
                             String localName,
                             String qName,
-                            Attributes atts,
-                            XSTypeDefinition xercesType)
+                            Attributes atts)
    {
       QName startName = localName.length() == 0 ? new QName(qName) : new QName(namespaceURI, localName);
       SchemaBinding schemaBinding = schema;
@@ -198,7 +196,8 @@
          }
          
          ElementPosition next = new ElementPosition(startName, particle);
-         next.push(this, atts, false);
+         next.setStack(this);
+         next.push(atts);
          head = next;
          return;
       }
@@ -208,7 +207,7 @@
          ElementPosition next = head.startParticle(startName, atts);
          if (next != null)
          {
-            next.push(this, atts, head == next);
+            next.push(atts);
             head = next;
             break;
          }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -316,9 +316,10 @@
                next.setPrevious(this);
                ++occurrence;
 
-               endParticle();
+               o = handler.endParticle(o, qName, particle);
+               if(previous.getValue() != null)
+                  setParent(previous, handler);
                //o = initValue(stack.parent().getValue(), atts);
-               ended = false;
 
                return this;
             }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/AbstractPosition.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/AbstractPosition.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/AbstractPosition.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -24,7 +24,6 @@
 import javax.xml.namespace.QName;
 
 import org.jboss.logging.Logger;
-import org.jboss.xb.binding.JBossXBRuntimeException;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultHandlers;
 import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.NoopParticleHandler;
@@ -95,11 +94,6 @@
    {
       return next;
    }
-   
-   public void setNext(Position position)
-   {
-      this.next = position;
-   }
 
    public Position getPrevious()
    {
@@ -154,14 +148,6 @@
       o = handler.startParticle(parent, qName, particle, atts, stack.getNamespaceRegistry());
    }
 
-   public void reset()
-   {
-      if(!ended)
-         throw new JBossXBRuntimeException("Attempt to reset a particle that has already been reset: " + particle.getTerm());
-      ended = false;
-      o = null;
-   }      
-
    public void startRepeatableParticle()
    {
       if(trace)
@@ -183,9 +169,6 @@
    {
       if (trace)
          log.trace(" end repeatable " + particle.getTerm());
-
-      if(repeatableParticleValue == null)
-         throw new IllegalStateException("handler is null");
       repeatableHandler.endRepeatableParticle(previous.getValue(), repeatableParticleValue, qName, particle, previous.getParticle());
       repeatableParticleValue = null;
       repeatableHandler = null;

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/ElementPosition.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/ElementPosition.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/ElementPosition.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -39,7 +39,6 @@
 import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
-import org.jboss.xb.binding.sunday.unmarshalling.PositionStack;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBeforeSetParentCallback;
@@ -71,17 +70,6 @@
       super(qName, particle);
    }
 
-   public ElementPosition(QName qName, ParticleBinding particle, Object o, ParticleHandler handler, TypeBinding parentType, Position previous)
-   {
-      super(qName, particle);
-      this.particle = particle;
-      this.o = o;
-      this.handler = handler;
-      this.parentType = parentType;
-      this.previous = previous;
-      previous.setNext(this);
-   }
-   
    public boolean isElement()
    {
       return true;
@@ -89,7 +77,10 @@
 
    public void reset()
    {
-      super.reset();
+      if(!ended)
+         throw new JBossXBRuntimeException("Attempt to reset a particle that has already been reset: " + particle.getTerm());
+      ended = false;
+      o = null;
       
       if(textContent != null)
          textContent.setLength(0);
@@ -153,7 +144,7 @@
          // it's not repeatable but it re-appeared
          // it probably has a repeatable parent
          reset();
-         endRepeatableParent();
+         previous.repeatForChild(atts);
          occurrence = 1;
          if(next != null)
          {
@@ -192,6 +183,7 @@
 
             ElementBinding xopInclude = new ElementBinding(schema, Constants.QNAME_XOP_INCLUDE, xopIncludeType);
             next = new ElementPosition(startName, new ParticleBinding(xopInclude));
+            next.setStack(stack);
             next.setPrevious(this);
             return next;
          }
@@ -224,20 +216,21 @@
       
       flushIgnorableCharacters();
 
-      Position newPosition = next;
-      while (newPosition.getNext() != null)
+      Position nextPosition = next;
+      while (nextPosition.getNext() != null)
       {
-         if (newPosition.getParticle().isRepeatable())
-            newPosition.startRepeatableParticle();
+         if (nextPosition.getParticle().isRepeatable())
+            nextPosition.startRepeatableParticle();
 
-         newPosition.setStack(stack);
-         newPosition.initValue(atts);
-         newPosition.setParentType(parentType);
-         newPosition = newPosition.getNext();
+         nextPosition.setStack(stack);
+         nextPosition.initValue(atts);
+         nextPosition.setParentType(parentType);
+         nextPosition = nextPosition.getNext();
       }
 
-      newPosition.setParentType(parentType);
-      return (ElementPosition) newPosition;
+      nextPosition.setStack(stack);
+      nextPosition.setParentType(parentType);
+      return (ElementPosition) nextPosition;
    }
 
    public void characters(char[] ch, int start, int length)
@@ -505,34 +498,16 @@
    {
       return (ElementPosition) nextPosition(startName, atts);
    }
-   
-   private void endRepeatableParent()
-   {
-      Position position = this;
-      do
-      {
-         position = position.getPrevious();
-         if(position.isElement())
-            throw new JBossXBRuntimeException(
-               "Failed to start " + qName +
-               ": the element is not repeatable, repeatable parent expected to be a model group but got element " +
-               position.getParticle().getTerm().getQName()
-            );
-         ((NonElementPosition)position).endParticleWithNotSkippedParent();
-      }
-      while(!position.getParticle().isRepeatable());
 
-      while(position != this)
-      {
-         position.reset();
-         position.initValue(null);
-         position = position.getNext();
-      }
+   public void repeatForChild(Attributes atts)
+   {
+      throw new JBossXBRuntimeException("Failed to repeat parent for non-repeatable element: "
+            + "repeatable parent expected to be a model group but got element "
+            + qName);
    }
-   
-   public void push(PositionStack stack, Attributes atts, boolean repeated)
+
+   public void push(Attributes atts)
    {
-      this.stack = stack;
       ElementBinding element = (ElementBinding) particle.getTerm();
 
       // TODO xsi:type support should be implemented in a better way
@@ -576,7 +551,7 @@
          particle = new ParticleBinding(xsiElement, particle.getMinOccurs(), particle.getMaxOccurs(), particle.getMaxOccursUnbounded());
       }
 
-      if (!repeated && particle.isRepeatable())
+      if (occurrence == 1 && particle.isRepeatable())
          startRepeatableParticle();
 
       TypeBinding type = element.getType();

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/NonElementPosition.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/NonElementPosition.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/NonElementPosition.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -50,6 +50,7 @@
    {
    }
    
+   
    public void endParticle()
    {
       if(ended)
@@ -60,49 +61,56 @@
       
       if(previous.getValue() != null)
          setParent(previous, handler);
+      
+      if(repeatableParticleValue != null)
+         endRepeatableParticle();
    }
-   
-   public void endParticleWithNotSkippedParent()
+
+   public void repeatForChild(Attributes atts)
    {
       if(ended)
          throw new JBossXBRuntimeException("The position has already been ended!");
 
       o = handler.endParticle(o, qName, particle);
-      ended = true;
 
       // model group should always have parent particle
       Position parentPosition = notSkippedParent();
       if(parentPosition.getValue() != null)
          setParent(parentPosition, handler);
+
+      // if it is repeatable then this is the repeatable parent
+      if(!particle.isRepeatable())
+         previous.repeatForChild(atts);
+      
+      initValue(atts);
    }
-
+   
    public ElementPosition startParticle(QName startName, Attributes atts)
    {
       if (nextPosition(startName, atts) == null)
          return null;
 
       // push all except the last one
-      Position newPosition = next;
-      while (newPosition.getNext() != null)
+      Position nextPosition = next;
+      while (nextPosition.getNext() != null)
       {
-         if (newPosition.getParticle().isRepeatable())
-            newPosition.startRepeatableParticle();
+         if (nextPosition.getParticle().isRepeatable())
+            nextPosition.startRepeatableParticle();
 
-         newPosition.setStack(stack);
-         newPosition.initValue(atts);
-         newPosition.setParentType(parentType);
-         newPosition = newPosition.getNext();
+         nextPosition.setStack(stack);
+         nextPosition.initValue(atts);
+         nextPosition.setParentType(parentType);
+         nextPosition = nextPosition.getNext();
       }
 
-      newPosition.setParentType(parentType);
-      return (ElementPosition) newPosition;
+      nextPosition.setStack(stack);
+      nextPosition.setParentType(parentType);
+      return (ElementPosition) nextPosition;
    }
 
    protected void nextNotFound()
    {
       endParticle();
-      if(repeatableParticleValue != null)
-         endRepeatableParticle();
       next = null;
       occurrence = 0;
    }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/Position.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/Position.java	2010-01-06 13:50:08 UTC (rev 3902)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/position/Position.java	2010-01-07 15:25:27 UTC (rev 3903)
@@ -55,16 +55,12 @@
    
    Position getNext();
 
-   void setNext(Position next);
-
    Position getPrevious();
 
    void setPrevious(Position previous);
    
    boolean isElement();
    
-   void reset();
-   
    Position nextPosition(QName qName, Attributes attrs);
 
    void characters(char[] ch, int start, int length);
@@ -78,4 +74,6 @@
    void startRepeatableParticle();
    
    void endRepeatableParticle();
+   
+   void repeatForChild(Attributes atts);
 }



More information about the jboss-svn-commits mailing list