Author: lmandel
Date: Tue Sep 27 11:04:18 2005
New Revision: 292008

URL: http://svn.apache.org/viewcvs?rev=292008&view=rev
Log:
Added reader feature class and tests.

Updated base reader to use reader features class.

Added:
    incubator/woden/java/src/org/apache/woden/internal/ReaderFeatures.java
    incubator/woden/java/test/org/apache/woden/internal/ReaderFeaturesTest.java
Modified:
    incubator/woden/java/src/org/apache/woden/internal/BaseWSDLReader.java
    incubator/woden/java/test/org/apache/woden/tests/AllWodenTests.java

Modified: incubator/woden/java/src/org/apache/woden/internal/BaseWSDLReader.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/BaseWSDLReader.java?rev=292008&r1=292007&r2=292008&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/BaseWSDLReader.java 
(original)
+++ incubator/woden/java/src/org/apache/woden/internal/BaseWSDLReader.java Tue 
Sep 27 11:04:18 2005
@@ -28,10 +28,13 @@
     private String fFactoryImplName = null;

     

     private ErrorReporter fErrorReporter;

+    

+    private ReaderFeatures features;

 

     //Override the default constructor to throw a WSDL exception

     protected BaseWSDLReader() throws WSDLException {

         fErrorReporter= new ErrorReporter(); 

+        features = new ReaderFeatures();

     }

     

     /**

@@ -153,14 +156,13 @@
             throw new IllegalArgumentException(

                     fErrorReporter.getFormattedMessage("WSDL005", null));

         }

-        else if(name.equals("xyz"))

+        try

         {

-            //TODO determine the required features (e.g. 
org.apache.woden.verbose) and

-            //create an if block for each one to set the value.

+               features.setValue(name, value);

         }

-        else

+        catch(IllegalArgumentException e)

         {

-            //feature name is not recognized, so throw an exception

+               // Feature name is not recognized, so throw an exception.

             Object[] args = new Object[] {name};

             throw new IllegalArgumentException(

                     fErrorReporter.getFormattedMessage("WSDL006", args));

@@ -183,18 +185,13 @@
                     fErrorReporter.getFormattedMessage("WSDL005", null));

         }

         

-        //Return the feature's value or throw an exception if the feature

-        //name is not recognized

-        

-        if(name.equals("xyz"))

+        try

         {

-            //TODO determine the required features (e.g. 
org.apache.woden.verbose) and

-            //create an if block for each one to get the value.

-            return true;

+               return features.getValue(name);

         }

-        else

+        catch(IllegalArgumentException e)

         {

-            //feature name is not recognized, so throw an exception

+               // Feature name is not recognized, so throw an exception.

             Object[] args = new Object[] {name};

             throw new IllegalArgumentException(

                     fErrorReporter.getFormattedMessage("WSDL006", args));


Added: incubator/woden/java/src/org/apache/woden/internal/ReaderFeatures.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/ReaderFeatures.java?rev=292008&view=auto
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/ReaderFeatures.java 
(added)
+++ incubator/woden/java/src/org/apache/woden/internal/ReaderFeatures.java Tue 
Sep 27 11:04:18 2005
@@ -0,0 +1,86 @@
+/**

+ * Copyright 2005 Apached Software Foundation 

+ *

+ * Licensed under the Apache License, Version 2.0 (the "License"); 

+ * you may not use this file except in compliance with the License. 

+ * You may obtain a copy of the License at 

+ * 

+ *     http://www.apache.org/licenses/LICENSE-2.0 

+ * 

+ * Unless required by applicable law or agreed to in writing, software 

+ * distributed under the License is distributed on an "AS IS" BASIS, 

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

+ * See the License for the specific language governing permissions and 

+ * limitations under the License.

+ */

+package org.apache.woden.internal;

+

+import java.util.Hashtable;

+

+/**

+ * This class contains all supported Woden reader features and stores

+ * their values for individual parser configurations.

+ * 

+ * TODO: determine the required features (e.g. org.apache.woden.verbose) and

+ * create an ID for each value.

+ */

+public class ReaderFeatures 

+{

+       /**

+        * The Woden validation ID. This ID allows the caller to enable or

+        * disable validation. Defaults to disabled.

+        */

+       public static String VALIDATION_FEATURE_ID = 
"http://apache.org/woden/features/validation";;

+       

+       /**

+        * This hashtable contains the values for the features.

+        */

+       protected Hashtable values = new Hashtable();

+       

+       private Boolean on = new Boolean(true);

+       private Boolean off = new Boolean(false);

+       

+       public ReaderFeatures()

+       {

+         values.put(VALIDATION_FEATURE_ID, off);

+       }

+       

+       /**

+        * Get the value for the given feature. 

+        * @param featureId The ID of the feature for which the value is 
requested.

+        * @return true if the feature is enabled, false otherwise.

+        * @throws IllegalArgumentException if the feature is not supported.

+        */

+       public boolean getValue(String featureId) throws 
IllegalArgumentException

+       {

+         Boolean value = (Boolean)values.get(featureId);

+         if(value == null)

+         {

+               throw new IllegalArgumentException("The feature " + featureId + 
" is not supported.");

+         }

+         return value.booleanValue();

+       }

+       

+       /**

+        * Set the value of the given feature

+        * @param featureId The ID of the feature to set.

+        * @param value The value to set for the feature.

+        * @throws IllegalArgumentException if the feature is not supported.

+        */

+       public void setValue(String featureId, boolean value) throws 
IllegalArgumentException

+       {

+               // Check if the feature is supported.

+               if(!values.containsKey(featureId))

+               {

+                       throw new IllegalArgumentException("The feature " + 
featureId + " is not supported.");

+               }

+               if(value)

+               {

+                       values.put(featureId, on);

+               }

+               else

+               {

+                       values.put(featureId, off);

+               }

+       }

+}


Added: 
incubator/woden/java/test/org/apache/woden/internal/ReaderFeaturesTest.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/test/org/apache/woden/internal/ReaderFeaturesTest.java?rev=292008&view=auto
==============================================================================
--- incubator/woden/java/test/org/apache/woden/internal/ReaderFeaturesTest.java 
(added)
+++ incubator/woden/java/test/org/apache/woden/internal/ReaderFeaturesTest.java 
Tue Sep 27 11:04:18 2005
@@ -0,0 +1,84 @@
+/**

+ * Copyright 2005 Apached Software Foundation 

+ *

+ * Licensed under the Apache License, Version 2.0 (the "License"); 

+ * you may not use this file except in compliance with the License. 

+ * You may obtain a copy of the License at 

+ * 

+ *     http://www.apache.org/licenses/LICENSE-2.0 

+ * 

+ * Unless required by applicable law or agreed to in writing, software 

+ * distributed under the License is distributed on an "AS IS" BASIS, 

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

+ * See the License for the specific language governing permissions and 

+ * limitations under the License.

+ */

+package org.apache.woden.internal;

+

+import junit.framework.TestCase;

+

+/**

+ * Unit tests for the ReaderFeatures class.

+ * 

+ * TODO: Add tests for all features.

+ */

+public class ReaderFeaturesTest extends TestCase {

+

+       private ReaderFeatures defaultFeatures = new ReaderFeatures();

+       private ReaderFeatures features = new ReaderFeatures();

+       

+       /**

+        * Test that the validation feature is off by default.

+        */

+       public void testValidationDefault()

+       {

+               assertFalse("The validation feature is not off by default.", 
defaultFeatures.getValue(ReaderFeatures.VALIDATION_FEATURE_ID));

+       }

+       

+       /**

+        * Test that the getValue method throws an exception for invalid

+        * features.

+        */

+       public void testGetValueForInvalidFeature()

+       {

+               try

+               {

+                       features.getValue("http://invalidfeatureid";);

+                       fail("An IllegalStateException was not thrown when 
getValue is called for an invalid feature ID.");

+               }

+               catch(IllegalArgumentException e)

+               {

+                       // The successful case will reach here. Nothing to do 
at this point.

+               }

+       }

+       

+       /**

+        * Test that the setValue method throws an exception for invalid

+        * features.

+        */

+       public void testSetValueForInvalidFeature()

+       {

+               try

+               {

+                       features.setValue("http://invalidfeatureid";, true);

+                       fail("An IllegalStateException was not thrown when 
setValue is called for an invalid feature ID.");

+               }

+               catch(IllegalArgumentException e)

+               {

+                       // The successful case will reach here. Nothing to do 
at this point.

+               }

+       }

+       

+       /**

+        * Test that setting values to on or off works correctly.

+        */

+       public void testSetValue()

+       {

+               features.setValue(ReaderFeatures.VALIDATION_FEATURE_ID, true);

+               assertTrue("The validation feature is not set to true.", 
features.getValue(ReaderFeatures.VALIDATION_FEATURE_ID));

+               

+               features.setValue(ReaderFeatures.VALIDATION_FEATURE_ID, false);

+               assertFalse("The validation feature is not set to false.", 
features.getValue(ReaderFeatures.VALIDATION_FEATURE_ID));

+       }

+

+}


Modified: incubator/woden/java/test/org/apache/woden/tests/AllWodenTests.java
URL: 
http://svn.apache.org/viewcvs/incubator/woden/java/test/org/apache/woden/tests/AllWodenTests.java?rev=292008&r1=292007&r2=292008&view=diff
==============================================================================
--- incubator/woden/java/test/org/apache/woden/tests/AllWodenTests.java 
(original)
+++ incubator/woden/java/test/org/apache/woden/tests/AllWodenTests.java Tue Sep 
27 11:04:18 2005
@@ -5,6 +5,7 @@
 

 import org.apache.woden.WSDLFactoryTest;

 import org.apache.woden.WSDLReaderTest;

+import org.apache.woden.internal.ReaderFeaturesTest;

 import org.apache.woden.tests.wsdl20.W3CTestSuiteTest;

 

 public class AllWodenTests extends TestSuite 

@@ -28,6 +29,7 @@
        addTest(WSDLFactoryTest.suite());

        addTest(WSDLReaderTest.suite());

        addTest(W3CTestSuiteTest.suite());

+       addTestSuite(ReaderFeaturesTest.class);

   }

        

 }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to