You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/07/20 10:16:46 UTC
svn commit: r423818 - in /cocoon: branches/BRANCH_2_1_X/
trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/
Author: cziegeler
Date: Thu Jul 20 01:16:45 2006
New Revision: 423818
URL: http://svn.apache.org/viewvc?rev=423818&view=rev
Log:
CForms block: JavaClassValidatorBuilder supports Configurable validator implementations. New AbstractJavaValidator
implementation supports generation of customized fail messages.
Added:
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java (with props)
Modified:
cocoon/branches/BRANCH_2_1_X/status.xml
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/JavaClassValidatorBuilder.java (contents, props changed)
Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewvc/cocoon/branches/BRANCH_2_1_X/status.xml?rev=423818&r1=423817&r2=423818&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Thu Jul 20 01:16:45 2006
@@ -182,6 +182,10 @@
<release version="@version@" date="@date@">
-->
<release version="2.1.10" date="TBD">
+ <action dev="CZ" type="add">
+ CForms block: JavaClassValidatorBuilder supports Configurable validator implementations. New AbstractJavaValidator
+ implementation supports generation of customized fail messages.
+ </action>
<action dev="AG" type="fix" fixes-bug="COCOON-1882" due-to="Holger Wahlen" due-to-email="hwahlen@pironet-ndh.com">
Core: ZipArchiveSerializer causes "Too many open files" exception.
</action>
Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java?rev=423818&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java (added)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java Thu Jul 20 01:16:45 2006
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2006 The Apache 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.cocoon.forms.validation.impl;
+
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.configuration.ConfigurationUtil;
+import org.apache.cocoon.forms.FormsConstants;
+import org.apache.cocoon.forms.util.DomHelper;
+import org.apache.cocoon.forms.validation.ValidationError;
+import org.apache.excalibur.xml.sax.XMLizable;
+import org.w3c.dom.Element;
+
+/**
+ * Abstract base class for implementing an own Java validator which gets build by
+ * the {@link JavaClassValidatorBuilder}.
+ *
+ * @version $Id$
+ */
+public class AbstractJavaValidator
+ implements Configurable {
+
+ protected ValidationError validationError;
+
+ /**
+ * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+ */
+ public void configure(Configuration config) throws ConfigurationException {
+ final Element element = ConfigurationUtil.toElement(config);
+ this.validationError = this.buildFailMessage(element);
+ }
+
+ /**
+ * Checks if the validation rule configuration contains a custom failmessage, and if so,
+ * sets it one the ValidationRule.
+ */
+ protected ValidationError buildFailMessage(Element validationRuleElement) {
+ Element failMessageElement = DomHelper.getChildElement(validationRuleElement,
+ FormsConstants.DEFINITION_NS, "failmessage");
+ if (failMessageElement != null) {
+ XMLizable failMessage = DomHelper.compileElementContent(failMessageElement);
+ return new ValidationError(failMessage);
+ }
+ return this.getDefaultFailMessage();
+ }
+
+ protected abstract ValidationError getDefaultFailMessage();
+}
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/AbstractJavaValidator.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/JavaClassValidatorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/JavaClassValidatorBuilder.java?rev=423818&r1=423817&r2=423818&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/JavaClassValidatorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/JavaClassValidatorBuilder.java Thu Jul 20 01:16:45 2006
@@ -15,6 +15,7 @@
*/
package org.apache.cocoon.forms.validation.impl;
+import org.apache.avalon.framework.configuration.ConfigurationUtil;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
@@ -42,35 +43,47 @@
*
* @version $Id$
*/
-public class JavaClassValidatorBuilder implements WidgetValidatorBuilder, ThreadSafe, Serviceable, LogEnabled, Contextualizable {
+public class JavaClassValidatorBuilder
+ implements WidgetValidatorBuilder, ThreadSafe, Serviceable, LogEnabled, Contextualizable {
private ServiceManager manager;
- private Logger logger = null;
- private Context context = null;
+ private Logger logger;
+ private Context context;
+ /**
+ * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
+ */
public void service(ServiceManager manager) throws ServiceException {
this.manager = manager;
}
+ /**
+ * @see org.apache.cocoon.forms.validation.WidgetValidatorBuilder#build(org.w3c.dom.Element, org.apache.cocoon.forms.formmodel.WidgetDefinition)
+ */
public WidgetValidator build(Element validationRuleElement, WidgetDefinition definition) throws Exception {
String name = DomHelper.getAttribute(validationRuleElement, "class");
Object validator = ClassUtils.newInstance(name);
if (validator instanceof WidgetValidator) {
- LifecycleHelper.setupComponent(validator, logger, context, manager, null);
+ LifecycleHelper.setupComponent(validator, logger, context, manager, ConfigurationUtil.toConfiguration(validationRuleElement));
return (WidgetValidator)validator;
} else {
throw new Exception("Class " + validator.getClass() + " is not a " + WidgetValidator.class.getName());
}
}
+ /**
+ * @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(org.apache.avalon.framework.logger.Logger)
+ */
public void enableLogging(Logger logger) {
this.logger = logger;
}
+ /**
+ * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
+ */
public void contextualize(Context context) throws ContextException {
this.context = context;
}
-
}
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/JavaClassValidatorBuilder.java
------------------------------------------------------------------------------
svn:keywords = Id