Author: jochen
Date: Wed Feb 11 13:49:08 2009
New Revision: 743338

URL: http://svn.apache.org/viewvc?rev=743338&view=rev
Log:
Fixed several bugs in the handling of patterns.

Modified:
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java
    
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java
    webservices/jaxme/trunk/ws-jaxme/status.xml

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java
 Wed Feb 11 13:49:08 2009
@@ -159,7 +159,7 @@
        /** Adds code for validating the value <code>pValue</code> within the
         * handler.
         */
-       public void addHandlerValidation(JavaMethod pJm, TypedValue pValue) 
throws SAXException;
+       public void addHandlerValidation(JavaMethod pJm, TypedValue pValue, 
Object pStringValue) throws SAXException;
 
        /** Returns, whether the simple type is an instance of
         * <code>xs:id</code>.

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java
 Wed Feb 11 13:49:08 2009
@@ -285,7 +285,7 @@
                        pJm.addTry();
                }
                Object s = new Object[]{"(", StringSG.STRING_TYPE, ") ", 
pValue};
-               pType.getSimpleTypeSG().addHandlerValidation(pJm, pValue);
+               pType.getSimpleTypeSG().addHandlerValidation(pJm, pValue, s);
                TypedValue result = new 
TypedValueImpl(pType.getSimpleTypeSG().getCastFromString(pJm, s, 
"getHandler()"),
                                                                                
           pType.getSimpleTypeSG().getRuntimeType());
                pPropertySG.addValue(pJm, pElement, result, null);

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
 Wed Feb 11 13:49:08 2009
@@ -199,7 +199,7 @@
                return 
itemType.getSimpleTypeSG().isCausingParseConversionEvent();
        }
 
-       public void addHandlerValidation(SimpleTypeSG pController, JavaMethod 
pJm, TypedValue pValue) throws SAXException {
-               itemType.getSimpleTypeSG().addHandlerValidation(pJm, pValue);
+       public void addHandlerValidation(SimpleTypeSG pController, JavaMethod 
pJm, TypedValue pValue, Object pStringValue) throws SAXException {
+               itemType.getSimpleTypeSG().addHandlerValidation(pJm, pValue, 
pStringValue);
        }
 }

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java
 Wed Feb 11 13:49:08 2009
@@ -130,7 +130,7 @@
   public void addValidation(SimpleTypeSG pController, JavaMethod pMethod, 
DirectAccessible pValue) throws SAXException {
   }
 
-       public void addHandlerValidation(SimpleTypeSG pController, JavaMethod 
pJm, TypedValue pValue)
+       public void addHandlerValidation(SimpleTypeSG pController, JavaMethod 
pJm, TypedValue pValue, Object pStringValue)
                        throws SAXException {
        }
 }

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java
 Wed Feb 11 13:49:08 2009
@@ -31,6 +31,7 @@
 import org.apache.ws.jaxme.js.JavaSource;
 import org.apache.ws.jaxme.js.LocalJavaField;
 import org.apache.ws.jaxme.js.TypedValue;
+import org.apache.ws.jaxme.js.JavaSource.Protection;
 import org.apache.ws.jaxme.js.impl.TypedValueImpl;
 import org.apache.ws.jaxme.xs.XSType;
 import org.apache.ws.jaxme.xs.parser.impl.LocSAXException;
@@ -86,27 +87,32 @@
                   ||  atomicType.getPatterns() != null;
        }
 
-       public void addHandlerValidation(SimpleTypeSG pController, JavaMethod 
pJm, TypedValue pValue)
+       private String newReFieldName(JavaSource pJs) {
+               for (int i = 0;  ;  i++) {
+                       String name = "_re_" + i;
+                       JavaField jf = pJs.getField(name);
+                       if (jf == null) {
+                               return name;
+                       }
+               }
+       }
+
+       public void addHandlerValidation(SimpleTypeSG pController, JavaMethod 
pJm, TypedValue pValue, Object pStringValue)
                        throws SAXException {
                String[] patterns = pController.getAtomicType().getPatterns();
-               if (patterns == null) {
+               if (patterns == null  ||  patterns.length == 0) {
                        return;
                }
                JavaSource js = pJm.getJavaSource();
-               int i = 0;
-               for (;;) {
-                       String name = "_re_" + i;
-                       JavaField jf = js.getField(name);
-                       if (jf == null) {
-                               break;
-                       }
-               }
+               
                for (int j = 0;  j < patterns.length;  j++) {
-                       String name = "_re_" + i++;
-                       JavaField jf = js.newJavaField(name, 
REHandler.Matcher.class);
+                       String name = newReFieldName(js);
+                       JavaField jf = js.newJavaField(name, 
REHandler.Matcher.class, JavaSource.PRIVATE);
+                       jf.setStatic(true);
+                       jf.setFinal(true);
                        jf.addLine(REFactory.class, 
".getREHandler().getMatcher(",
                                           JavaSource.getQuoted(patterns[j]), 
")");
-                       pJm.addIf("!", jf, ".matches(", pValue, ")");
+                       pJm.addIf("!", jf, ".matches(", pStringValue, ")");
                        pJm.addThrowNew(IllegalArgumentException.class,
                                                        
JavaSource.getQuoted("Value doesn't match pattern "),
                                                                " + ", jf, 
".getPattern()");

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java
 Wed Feb 11 13:49:08 2009
@@ -26,7 +26,7 @@
                final RegularExpression re = new RegularExpression(pPattern, 
"X");
                return new Matcher(){
                        public String getPattern() { return pPattern; }
-                       public synchronized boolean matches(String pValue) {
+                       public boolean matches(String pValue) {
                                return re.matches(pValue);
                        }
                };

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java
 Wed Feb 11 13:49:08 2009
@@ -23,8 +23,9 @@
  * Upon startup, an attempt is made to load an RE implementation.
  */
 public interface REHandler {
-       /** An RE matcher is a compiled regular expression.
-        * Its method
+       /** An RE matcher is a thread safe, compiled regular expression.
+        * Its method "matches" is used to determine, whether a given
+        * string matches the pattern.
         */
        public interface Matcher {
                /** Returns the regular expressions pattern.

Modified: 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java
 (original)
+++ 
webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java
 Wed Feb 11 13:49:08 2009
@@ -26,7 +26,7 @@
                final RegularExpression re = new RegularExpression(pPattern, 
"X");
                return new Matcher(){
                        public String getPattern() { return pPattern; }
-                       public synchronized boolean matches(String pValue) {
+                       public boolean matches(String pValue) {
                                return re.matches(pValue);
                        }
                };

Modified: webservices/jaxme/trunk/ws-jaxme/status.xml
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/status.xml?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/status.xml (original)
+++ webservices/jaxme/trunk/ws-jaxme/status.xml Wed Feb 11 13:49:08 2009
@@ -45,6 +45,15 @@
       <action dev="JW" type="fix" context="js">
         Upgrade to the latest version of java15.g.
       </action>
+      <action dev="JW" type="enhancement" context="all">
+        Upgrade from Maven 1 to Maven 2.
+      </action>
+      <action dev="JW" type="enhancement" context="api">
+        Upgraded the API to JAXB 2.1, so that Java 6 can be supported.
+      </action>
+      <action dev="JW" type="fix">
+        Fixed an endless loop when handling patterns.
+      </action>
     </release>
     <release version="0.5.3" date="Unpublished">
       <action dev="JW" type="fix" context="runtime">



---------------------------------------------------------------------
To unsubscribe, e-mail: jaxme-dev-unsubscr...@ws.apache.org
For additional commands, e-mail: jaxme-dev-h...@ws.apache.org

Reply via email to