luetzkendorf    2005/01/11 09:05:23

  Modified:    src/webdav/server/org/apache/slide/webdav/util/resourcekind
                        ResourceKindManager.java
  Log:
  support for ConfigurablePropertyValueValidator added
  
  Revision  Changes    Path
  1.5       +21 -6     
jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKindManager.java
  
  Index: ResourceKindManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKindManager.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ResourceKindManager.java  10 Jan 2005 18:06:39 -0000      1.4
  +++ ResourceKindManager.java  11 Jan 2005 17:05:23 -0000      1.5
  @@ -48,6 +48,7 @@
   import org.apache.slide.webdav.util.UriHandler;
   import org.apache.slide.webdav.util.WebdavConstants;
   import org.apache.slide.webdav.util.properties.ConfigurablePropertyComputer;
  +import 
org.apache.slide.webdav.util.properties.ConfigurablePropertyValueValidator;
   import org.apache.slide.webdav.util.properties.PropertyComputer;
   import org.apache.slide.webdav.util.properties.PropertyDefaultProvider;
   import org.apache.slide.webdav.util.properties.PropertyValueValidator;
  @@ -233,7 +234,6 @@
                   message.append(kind + " (property: " + name);
                   String p = propConfig.getAttribute("computer", null);
                   if (p != null) {
  -                    // computed property
                       message.append(" comupted" );
                       registerComputedProperty(kind, name, p, propConfig);
                   } 
  @@ -245,7 +245,7 @@
                   
                   p = propConfig.getAttribute("validator", null);
                   if (p != null) {
  -                    registerPropertyValidator(kind, name, p);
  +                    registerPropertyValidator(kind, name, p, propConfig);
                       message.append(" validated" );
                   }
                   
  @@ -340,11 +340,26 @@
           } 
       }
       private static void registerPropertyValidator(Kind kind, 
  -            PropertyName name, String validatorClass) {
  +            PropertyName name, String validatorClass, Configuration 
propConfig) {
           try {
               Class cls = Class.forName(validatorClass);
               PropertyValueValidator validator = 
(PropertyValueValidator)cls.newInstance();
               registerPropertyValidator(kind, name, validator);
  +            
  +            if (validator instanceof Configurable) {
  +                Configuration configuration = null;
  +                try {
  +                    configuration = 
propConfig.getConfiguration("validator-configuration");
  +                } catch (ConfigurationException e) {
  +                    // ignore; no configuration given, is OK too
  +                }
  +                if (configuration != null) {
  +                    ((Configurable)validator).configure(configuration);
  +                }
  +            }
  +            if (validator instanceof ConfigurablePropertyValueValidator) {
  +                
((ConfigurablePropertyValueValidator)validator).setPropertyName(name);
  +            }
           } catch (ClassNotFoundException ex) {
               error("Class " + validatorClass + " for validator not found!");
           } catch (InstantiationException ex) {
  
  
  

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

Reply via email to