You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/05/12 20:03:33 UTC
svn commit: r1102402 [1/20] - in /commons/sandbox/digester3/trunk/src:
main/java/org/apache/commons/digester3/
main/java/org/apache/commons/digester3/annotations/
main/java/org/apache/commons/digester3/annotations/handlers/
main/java/org/apache/commons...
Author: simonetripodi
Date: Thu May 12 18:03:26 2011
New Revision: 1102402
URL: http://svn.apache.org/viewvc?rev=1102402&view=rev
Log:
code reformatted using the Apache Maven code style
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractRulesImpl.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/BeanPropertySetterRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallParamRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ExtendedBaseRules.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/FactoryCreateRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/NodeCreateRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectCreationFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/ObjectParamRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/PathCallParamRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RegexMatcher.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RegexRules.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Rule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RuleSet.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RuleSetBase.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Rules.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBase.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SetNestedPropertiesRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SetNextRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SetPropertiesRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SetPropertyRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SetRootRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SetTopRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/SimpleRegexMatcher.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/StackAction.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Substitutor.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/WithDefaultsRulesWrapper.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/AnnotationRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/CreationRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoader.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoaderBuilder.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoaderHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoadingException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRuleList.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/FromAnnotationRuleProviderFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/FromAnnotationsRuleSet.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/DefaultLoaderHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/MethodHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/SetPropertiesLoaderHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/AbstractAnnotatedElementPrivilegedAction.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/DefaultAnnotationRuleProviderFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/DefaultDigesterLoaderHandlerFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/GetDeclaredFieldsPrivilegedAction.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/GetDeclaredMethodsPrivilegedAction.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/RuleSetCache.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/AttributeCallParamRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/BeanPropertySetterRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/CallMethodRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/CallParamRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/FactoryCreateRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/ObjectCreateRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/PathCallParamRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/SetNextRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/SetPropertiesRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/SetRootRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/SetTopRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/StackCallParamRuleProvider.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/reflect/MethodArgument.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/reflect/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/AttributeCallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/BeanPropertySetter.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallMethod.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/ObjectCreate.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/PathCallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetNext.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetProperty.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetRoot.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetTop.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/StackCallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/spi/AnnotationRuleProviderFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/spi/DigesterLoaderHandlerFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/spi/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/utils/AnnotationUtils.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/utils/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/Declaration.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/InitializableRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/LogUtils.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginAssertionFailure.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginConfigurationException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginContext.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginCreateRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginDeclarationRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginInvalidInputException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginManager.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/PluginRules.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/RuleFinder.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/RuleLoader.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/RulesFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromClass.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromDfltClass.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromDfltMethod.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromDfltResource.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromFile.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromMethod.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromResource.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderSetProperties.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/LoaderFromClass.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/LoaderFromStream.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/LoaderSetProperties.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/plugins/strategies/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/substitution/MultiVariableExpander.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/substitution/VariableAttributes.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/substitution/VariableExpander.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/substitution/VariableSubstitutor.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/substitution/package-info.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/CircularIncludeException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/DigesterLoader.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/DigesterLoadingException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/DigesterRuleParser.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/DigesterRulesSource.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/FromXmlRuleSet.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/XmlLoadException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/package-info.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/Address.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/AlphaBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BeanPropertySetterRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BetaBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/Box.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/CallMethodRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/DigesterTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/EBRTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/Employee.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/LocationTrackerTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/Nameable.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/NamedBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/NamespaceSnapshotTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/NamespacedBox.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/NodeCreateRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectCreationFactoryTestImpl.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ObjectParamRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/OtherTestObjectCreationFactory.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/OverlappingCallMethodRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/ParamBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/PrimitiveBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/RegexRulesTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/RuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/RulesBaseTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetPropertiesRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetPropertyRuleTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SimpleTestBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/TestBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/TestEntityResolution.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/TestFactoryCreate.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/TestRule.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/TestRuleSet.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/URLTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/WDRulesWrapperTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/XIncludeTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/XMLSchemaTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/AbstractAnnotatedPojoTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Address.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/AddressBook.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/AddressBookTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Person.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/AudioVisual.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/Book.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/BookFactory.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/Catalog.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/CatalogTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/Item.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/Address.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/Employee.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/EmployeeTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/Person.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/PersonTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/rss/Channel.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/rss/Image.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/rss/Item.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/rss/RssTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/servletbean/ServletBean.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/servletbean/ServletBeanTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/Container.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/ContainerCustomRules.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/DumperRule.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/ObjectTestImpl.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/Slider.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestConfigurablePluginAttributes.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestDeclaration.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestDefaultPlugin.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestDelegate.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestInline.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestLocalRules.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestRecursion.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestRuleInfo.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TestXmlRuleInfo.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TextLabel.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TextLabel2.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/TextLabel2RuleInfo.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/Utils.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/plugins/Widget.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/substitution/VariableExpansionTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/CallParamTestObject.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/DigesterLoaderRulesTest.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/DigesterLoaderTest.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/DigesterPatternStackTest.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/DigesterRulesSourceTestImpl.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/FromXmlRuleSetTest.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/IncludeTest.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/ObjectTestImpl.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/xmlrules/ThrowExceptionCreationFactory.java
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java?rev=1102402&r1=1102401&r2=1102402&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractObjectCreationFactory.java Thu May 12 18:03:26 2011
@@ -17,63 +17,59 @@
*/
package org.apache.commons.digester3;
-
import org.xml.sax.Attributes;
-
/**
- * <p>Abstract base class for <code>ObjectCreationFactory</code>
- * implementations.</p>
+ * <p>
+ * Abstract base class for <code>ObjectCreationFactory</code> implementations.
+ * </p>
*/
-abstract public class AbstractObjectCreationFactory implements ObjectCreationFactory {
-
+abstract public class AbstractObjectCreationFactory
+ implements ObjectCreationFactory
+{
// ----------------------------------------------------- Instance Variables
-
/**
- * The associated <code>Digester</code> instance that was set up by
- * {@link FactoryCreateRule} upon initialization.
+ * The associated <code>Digester</code> instance that was set up by {@link FactoryCreateRule} upon initialization.
*/
protected Digester digester = null;
-
// --------------------------------------------------------- Public Methods
-
/**
- * <p>Factory method called by {@link FactoryCreateRule} to supply an
- * object based on the element's attributes.
- *
+ * <p>
+ * Factory method called by {@link FactoryCreateRule} to supply an object based on the element's attributes.
+ *
* @param attributes the element's attributes
- *
* @throws Exception any exception thrown will be propagated upwards
*/
- public abstract Object createObject(Attributes attributes) throws Exception;
-
+ public abstract Object createObject( Attributes attributes )
+ throws Exception;
/**
- * <p>Returns the {@link Digester} that was set by the
- * {@link FactoryCreateRule} upon initialization.
+ * <p>
+ * Returns the {@link Digester} that was set by the {@link FactoryCreateRule} upon initialization.
*/
- public Digester getDigester() {
+ public Digester getDigester()
+ {
- return (this.digester);
+ return ( this.digester );
}
-
/**
- * <p>Set the {@link Digester} to allow the implementation to do logging,
- * classloading based on the digester's classloader, etc.
- *
+ * <p>
+ * Set the {@link Digester} to allow the implementation to do logging, classloading based on the digester's
+ * classloader, etc.
+ *
* @param digester parent Digester object
*/
- public void setDigester(Digester digester) {
+ public void setDigester( Digester digester )
+ {
this.digester = digester;
}
-
}
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractRulesImpl.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractRulesImpl.java?rev=1102402&r1=1102401&r2=1102402&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractRulesImpl.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/AbstractRulesImpl.java Thu May 12 18:03:26 2011
@@ -16,152 +16,145 @@
* limitations under the License.
*/
-
package org.apache.commons.digester3;
-
import java.util.List;
-
/**
- * <p><code>AbstractRuleImpl</code> provides basic services for <code>Rules</code> implementations.
- * Extending this class should make it easier to create a <code>Rules</code> implementation.</p>
+ * <p>
+ * <code>AbstractRuleImpl</code> provides basic services for <code>Rules</code> implementations. Extending this class
+ * should make it easier to create a <code>Rules</code> implementation.
+ * </p>
+ * <p>
+ * <code>AbstractRuleImpl</code> manages the <code>Digester</code> and <code>namespaceUri</code> properties. If the
+ * subclass overrides {@link #registerRule} (rather than {@link #add}), then the <code>Digester</code> and
+ * <code>namespaceURI</code> of the <code>Rule</code> will be set correctly before it is passed to
+ * <code>registerRule</code>. The subclass can then perform whatever it needs to do to register the rule.
+ * </p>
*
- * <p><code>AbstractRuleImpl</code> manages the <code>Digester</code>
- * and <code>namespaceUri</code> properties.
- * If the subclass overrides {@link #registerRule} (rather than {@link #add}),
- * then the <code>Digester</code> and <code>namespaceURI</code> of the <code>Rule</code>
- * will be set correctly before it is passed to <code>registerRule</code>.
- * The subclass can then perform whatever it needs to do to register the rule.</p>
- *
* @since 1.5
*/
-abstract public class AbstractRulesImpl implements Rules {
+abstract public class AbstractRulesImpl
+ implements Rules
+{
// ------------------------------------------------------------- Fields
-
+
/** Digester using this <code>Rules</code> implementation */
private Digester digester;
+
/** Namespace uri to assoicate with subsequent <code>Rule</code>'s */
private String namespaceURI;
-
+
// ------------------------------------------------------------- Properties
/**
- * Return the Digester instance with which this Rules instance is
- * associated.
+ * Return the Digester instance with which this Rules instance is associated.
*/
- public Digester getDigester() {
+ public Digester getDigester()
+ {
return digester;
}
/**
* Set the Digester instance with which this Rules instance is associated.
- *
+ *
* @param digester The newly associated Digester instance
*/
- public void setDigester(Digester digester) {
+ public void setDigester( Digester digester )
+ {
this.digester = digester;
}
/**
- * Return the namespace URI that will be applied to all subsequently
- * added <code>Rule</code> objects.
+ * Return the namespace URI that will be applied to all subsequently added <code>Rule</code> objects.
*/
- public String getNamespaceURI() {
+ public String getNamespaceURI()
+ {
return namespaceURI;
}
/**
- * Set the namespace URI that will be applied to all subsequently
- * added <code>Rule</code> objects.
- *
- * @param namespaceURI Namespace URI that must match on all
- * subsequently added rules, or <code>null</code> for matching
- * regardless of the current namespace URI
+ * Set the namespace URI that will be applied to all subsequently added <code>Rule</code> objects.
+ *
+ * @param namespaceURI Namespace URI that must match on all subsequently added rules, or <code>null</code> for
+ * matching regardless of the current namespace URI
*/
- public void setNamespaceURI(String namespaceURI) {
+ public void setNamespaceURI( String namespaceURI )
+ {
this.namespaceURI = namespaceURI;
}
// --------------------------------------------------------- Public Methods
/**
- * Registers a new Rule instance matching the specified pattern.
- * This implementation sets the <code>Digester</code> and the
- * <code>namespaceURI</code> on the <code>Rule</code> before calling {@link #registerRule}.
- *
+ * Registers a new Rule instance matching the specified pattern. This implementation sets the <code>Digester</code>
+ * and the <code>namespaceURI</code> on the <code>Rule</code> before calling {@link #registerRule}.
+ *
* @param pattern Nesting pattern to be matched for this Rule
* @param rule Rule instance to be registered
*/
- public void add(String pattern, Rule rule) {
+ public void add( String pattern, Rule rule )
+ {
// set up rule
- if (this.digester != null) {
- rule.setDigester(this.digester);
+ if ( this.digester != null )
+ {
+ rule.setDigester( this.digester );
}
-
- if (this.namespaceURI != null) {
- rule.setNamespaceURI(this.namespaceURI);
+
+ if ( this.namespaceURI != null )
+ {
+ rule.setNamespaceURI( this.namespaceURI );
}
-
- registerRule(pattern, rule);
-
- }
-
- /**
- * Register rule at given pattern.
- * The the Digester and namespaceURI properties of the given <code>Rule</code>
- * can be assumed to have been set properly before this method is called.
- *
+
+ registerRule( pattern, rule );
+
+ }
+
+ /**
+ * Register rule at given pattern. The the Digester and namespaceURI properties of the given <code>Rule</code> can
+ * be assumed to have been set properly before this method is called.
+ *
* @param pattern Nesting pattern to be matched for this Rule
* @param rule Rule instance to be registered
- */
- abstract protected void registerRule(String pattern, Rule rule);
+ */
+ abstract protected void registerRule( String pattern, Rule rule );
/**
* Clear all existing Rule instance registrations.
*/
abstract public void clear();
-
/**
- * Return a List of all registered Rule instances that match the specified
- * nesting pattern, or a zero-length List if there are no matches. If more
- * than one Rule instance matches, they <strong>must</strong> be returned
- * in the order originally registered through the <code>add()</code>
- * method.
- *
+ * Return a List of all registered Rule instances that match the specified nesting pattern, or a zero-length List if
+ * there are no matches. If more than one Rule instance matches, they <strong>must</strong> be returned in the order
+ * originally registered through the <code>add()</code> method.
+ *
* @param pattern Nesting pattern to be matched
- *
* @deprecated Call match(namespaceURI,pattern) instead.
*/
@Deprecated
- public List<Rule> match(String pattern) {
- return match(namespaceURI, pattern);
+ public List<Rule> match( String pattern )
+ {
+ return match( namespaceURI, pattern );
}
-
/**
- * Return a List of all registered Rule instances that match the specified
- * nesting pattern, or a zero-length List if there are no matches. If more
- * than one Rule instance matches, they <strong>must</strong> be returned
- * in the order originally registered through the <code>add()</code>
- * method.
- *
- * @param namespaceURI Namespace URI for which to select matching rules,
- * or <code>null</code> to match regardless of namespace URI
+ * Return a List of all registered Rule instances that match the specified nesting pattern, or a zero-length List if
+ * there are no matches. If more than one Rule instance matches, they <strong>must</strong> be returned in the order
+ * originally registered through the <code>add()</code> method.
+ *
+ * @param namespaceURI Namespace URI for which to select matching rules, or <code>null</code> to match regardless of
+ * namespace URI
* @param pattern Nesting pattern to be matched
*/
- abstract public List<Rule> match(String namespaceURI, String pattern);
-
+ abstract public List<Rule> match( String namespaceURI, String pattern );
/**
- * Return a List of all registered Rule instances, or a zero-length List
- * if there are no registered Rule instances. If more than one Rule
- * instance has been registered, they <strong>must</strong> be returned
- * in the order originally registered through the <code>add()</code>
- * method.
+ * Return a List of all registered Rule instances, or a zero-length List if there are no registered Rule instances.
+ * If more than one Rule instance has been registered, they <strong>must</strong> be returned in the order
+ * originally registered through the <code>add()</code> method.
*/
abstract public List<Rule> rules();
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/BeanPropertySetterRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/BeanPropertySetterRule.java?rev=1102402&r1=1102401&r2=1102402&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/BeanPropertySetterRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/BeanPropertySetterRule.java Thu May 12 18:03:26 2011
@@ -16,10 +16,8 @@
* limitations under the License.
*/
-
package org.apache.commons.digester3;
-
import java.beans.PropertyDescriptor;
import org.apache.commons.beanutils.BeanUtils;
@@ -27,109 +25,111 @@ import org.apache.commons.beanutils.Dyna
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.PropertyUtils;
-
/**
- * <p> Rule implements sets a bean property on the top object
- * to the body text.</p>
- *
- * <p> The property set:</p>
- * <ul><li>can be specified when the rule is created</li>
- * <li>or can match the current element when the rule is called.</li></ul>
- *
- * <p> Using the second method and the {@link ExtendedBaseRules} child match
- * pattern, all the child elements can be automatically mapped to properties
- * on the parent object.</p>
+ * <p>
+ * Rule implements sets a bean property on the top object to the body text.
+ * </p>
+ * <p>
+ * The property set:
+ * </p>
+ * <ul>
+ * <li>can be specified when the rule is created</li>
+ * <li>or can match the current element when the rule is called.</li>
+ * </ul>
+ * <p>
+ * Using the second method and the {@link ExtendedBaseRules} child match pattern, all the child elements can be
+ * automatically mapped to properties on the parent object.
+ * </p>
*/
-public class BeanPropertySetterRule extends Rule {
-
+public class BeanPropertySetterRule
+ extends Rule
+{
// ----------------------------------------------------------- Constructors
/**
- * <p>Construct rule that sets the given property from the body text.</p>
- *
+ * <p>
+ * Construct rule that sets the given property from the body text.
+ * </p>
+ *
* @param propertyName name of property to set
*/
- public BeanPropertySetterRule(String propertyName) {
+ public BeanPropertySetterRule( String propertyName )
+ {
this.propertyName = propertyName;
}
/**
- * <p>Construct rule that automatically sets a property from the body text.
- *
- * <p> This construct creates a rule that sets the property
- * on the top object named the same as the current element.
+ * <p>
+ * Construct rule that automatically sets a property from the body text.
+ * <p>
+ * This construct creates a rule that sets the property on the top object named the same as the current element.
*/
- public BeanPropertySetterRule() {
+ public BeanPropertySetterRule()
+ {
- this((String)null);
+ this( (String) null );
}
-
- // ----------------------------------------------------- Instance Variables
+ // ----------------------------------------------------- Instance Variables
/**
* Set this property on the top object.
*/
protected String propertyName = null;
-
/**
* The body text used to set the property.
*/
protected String bodyText = null;
-
// --------------------------------------------------------- Public Methods
-
/**
* Process the body text of this element.
- *
- * @param namespace the namespace URI of the matching element, or an
- * empty string if the parser is not namespace aware or the element has
- * no namespace
- * @param name the local name if the parser is namespace aware, or just
- * the element name otherwise
+ *
+ * @param namespace the namespace URI of the matching element, or an empty string if the parser is not namespace
+ * aware or the element has no namespace
+ * @param name the local name if the parser is namespace aware, or just the element name otherwise
* @param text The text of the body of this element
*/
@Override
- public void body(String namespace, String name, String text)
- throws Exception {
+ public void body( String namespace, String name, String text )
+ throws Exception
+ {
// log some debugging information
- if (getDigester().getLogger().isDebugEnabled()) {
- getDigester().getLogger().debug("[BeanPropertySetterRule]{" +
- getDigester().getMatch() + "} Called with text '" + text + "'");
+ if ( getDigester().getLogger().isDebugEnabled() )
+ {
+ getDigester().getLogger().debug( "[BeanPropertySetterRule]{" + getDigester().getMatch()
+ + "} Called with text '" + text + "'" );
}
bodyText = text.trim();
}
-
/**
* Process the end of this element.
- *
- * @param namespace the namespace URI of the matching element, or an
- * empty string if the parser is not namespace aware or the element has
- * no namespace
- * @param name the local name if the parser is namespace aware, or just
- * the element name otherwise
- *
- * @exception NoSuchMethodException if the bean does not
- * have a writeable property of the specified name
+ *
+ * @param namespace the namespace URI of the matching element, or an empty string if the parser is not namespace
+ * aware or the element has no namespace
+ * @param name the local name if the parser is namespace aware, or just the element name otherwise
+ * @exception NoSuchMethodException if the bean does not have a writeable property of the specified name
*/
@Override
- public void end(String namespace, String name) throws Exception {
+ public void end( String namespace, String name )
+ throws Exception
+ {
String property = propertyName;
- if (property == null) {
+ if ( property == null )
+ {
// If we don't have a specific property name,
// use the element name.
property = name;
@@ -139,58 +139,61 @@ public class BeanPropertySetterRule exte
Object top = getDigester().peek();
// log some debugging information
- if (getDigester().getLogger().isDebugEnabled()) {
- getDigester().getLogger().debug("[BeanPropertySetterRule]{" + getDigester().getMatch() +
- "} Set " + top.getClass().getName() + " property " +
- property + " with text " + bodyText);
+ if ( getDigester().getLogger().isDebugEnabled() )
+ {
+ getDigester().getLogger().debug( "[BeanPropertySetterRule]{" + getDigester().getMatch() + "} Set "
+ + top.getClass().getName() + " property " + property + " with text "
+ + bodyText );
}
// Force an exception if the property does not exist
// (BeanUtils.setProperty() silently returns in this case)
- if (top instanceof DynaBean) {
- DynaProperty desc =
- ((DynaBean) top).getDynaClass().getDynaProperty(property);
- if (desc == null) {
- throw new NoSuchMethodException
- ("Bean has no property named " + property);
+ if ( top instanceof DynaBean )
+ {
+ DynaProperty desc = ( (DynaBean) top ).getDynaClass().getDynaProperty( property );
+ if ( desc == null )
+ {
+ throw new NoSuchMethodException( "Bean has no property named " + property );
}
- } else /* this is a standard JavaBean */ {
- PropertyDescriptor desc =
- PropertyUtils.getPropertyDescriptor(top, property);
- if (desc == null) {
- throw new NoSuchMethodException
- ("Bean has no property named " + property);
+ }
+ else
+ /* this is a standard JavaBean */{
+ PropertyDescriptor desc = PropertyUtils.getPropertyDescriptor( top, property );
+ if ( desc == null )
+ {
+ throw new NoSuchMethodException( "Bean has no property named " + property );
}
}
// Set the property (with conversion as necessary)
- BeanUtils.setProperty(top, property, bodyText);
+ BeanUtils.setProperty( top, property, bodyText );
}
-
/**
* Clean up after parsing is complete.
*/
@Override
- public void finish() throws Exception {
+ public void finish()
+ throws Exception
+ {
bodyText = null;
}
-
/**
* Render a printable version of this Rule.
*/
@Override
- public String toString() {
+ public String toString()
+ {
- StringBuilder sb = new StringBuilder("BeanPropertySetterRule[");
- sb.append("propertyName=");
- sb.append(propertyName);
- sb.append("]");
- return (sb.toString());
+ StringBuilder sb = new StringBuilder( "BeanPropertySetterRule[" );
+ sb.append( "propertyName=" );
+ sb.append( propertyName );
+ sb.append( "]" );
+ return ( sb.toString() );
}
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java?rev=1102402&r1=1102401&r2=1102402&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java Thu May 12 18:03:26 2011
@@ -16,124 +16,109 @@
* limitations under the License.
*/
-
package org.apache.commons.digester3;
-
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.MethodUtils;
import org.xml.sax.Attributes;
-
/**
- * <p>Rule implementation that calls a method on an object on the stack
- * (normally the top/parent object), passing arguments collected from
- * subsequent <code>CallParamRule</code> rules or from the body of this
- * element. </p>
- *
- * <p>By using {@link #CallMethodRule(String methodName)}
- * a method call can be made to a method which accepts no
- * arguments.</p>
- *
- * <p>Incompatible method parameter types are converted
- * using <code>org.apache.commons.beanutils.ConvertUtils</code>.
+ * <p>
+ * Rule implementation that calls a method on an object on the stack (normally the top/parent object), passing arguments
+ * collected from subsequent <code>CallParamRule</code> rules or from the body of this element.
+ * </p>
+ * <p>
+ * By using {@link #CallMethodRule(String methodName)} a method call can be made to a method which accepts no arguments.
+ * </p>
+ * <p>
+ * Incompatible method parameter types are converted using <code>org.apache.commons.beanutils.ConvertUtils</code>.
+ * </p>
+ * <p>
+ * This rule now uses {@link MethodUtils#invokeMethod} by default. This increases the kinds of methods successfully and
+ * allows primitives to be matched by passing in wrapper classes. There are rare cases when
+ * {@link MethodUtils#invokeExactMethod} (the old default) is required. This method is much stricter in it's reflection.
+ * Setting the <code>UseExactMatch</code> to true reverts to the use of this method.
+ * </p>
+ * <p>
+ * Note that the target method is invoked when the <i>end</i> of the tag the CallMethodRule fired on is encountered,
+ * <i>not</i> when the last parameter becomes available. This implies that rules which fire on tags nested within the
+ * one associated with the CallMethodRule will fire before the CallMethodRule invokes the target method. This behaviour
+ * is not configurable.
+ * </p>
+ * <p>
+ * Note also that if a CallMethodRule is expecting exactly one parameter and that parameter is not available (eg
+ * CallParamRule is used with an attribute name but the attribute does not exist) then the method will not be invoked.
+ * If a CallMethodRule is expecting more than one parameter, then it is always invoked, regardless of whether the
+ * parameters were available or not; missing parameters are converted to the appropriate target type by calling
+ * ConvertUtils.convert. Note that the default ConvertUtils converters for the String type returns a null when passed a
+ * null, meaning that CallMethodRule will passed null for all String parameters for which there is no parameter info
+ * available from the XML. However parameters of type Float and Integer will be passed a real object containing a zero
+ * value as that is the output of the default ConvertUtils converters for those types when passed a null. You can
+ * register custom converters to change this behaviour; see the beautils library documentation for more info.
+ * </p>
+ * <p>
+ * Note that when a constructor is used with paramCount=0, indicating that the body of the element is to be passed to
+ * the target method, an empty element will cause an <i>empty string</i> to be passed to the target method, not null.
+ * And if automatic type conversion is being applied (ie if the target function takes something other than a string as a
+ * parameter) then the conversion will fail if the converter class does not accept an empty string as valid input.
+ * </p>
+ * <p>
+ * CallMethodRule has a design flaw which can cause it to fail under certain rule configurations. All CallMethodRule
+ * instances share a single parameter stack, and all CallParamRule instances simply store their data into the
+ * parameter-info structure that is on the top of the stack. This means that two CallMethodRule instances cannot be
+ * associated with the same pattern without getting scrambled parameter data. This same issue also applies when a
+ * CallMethodRule matches some element X, a different CallMethodRule matches a child element Y and some of the
+ * CallParamRules associated with the first CallMethodRule match element Y or one of its child elements. This issue has
+ * been present since the very first release of Digester. Note, however, that this configuration of CallMethodRule
+ * instances is not commonly required.
* </p>
- *
- * <p>This rule now uses {@link MethodUtils#invokeMethod} by default.
- * This increases the kinds of methods successfully and allows primitives
- * to be matched by passing in wrapper classes.
- * There are rare cases when {@link MethodUtils#invokeExactMethod}
- * (the old default) is required.
- * This method is much stricter in it's reflection.
- * Setting the <code>UseExactMatch</code> to true reverts to the use of this
- * method.</p>
- *
- * <p>Note that the target method is invoked when the <i>end</i> of
- * the tag the CallMethodRule fired on is encountered, <i>not</i> when the
- * last parameter becomes available. This implies that rules which fire on
- * tags nested within the one associated with the CallMethodRule will
- * fire before the CallMethodRule invokes the target method. This behaviour is
- * not configurable. </p>
- *
- * <p>Note also that if a CallMethodRule is expecting exactly one parameter
- * and that parameter is not available (eg CallParamRule is used with an
- * attribute name but the attribute does not exist) then the method will
- * not be invoked. If a CallMethodRule is expecting more than one parameter,
- * then it is always invoked, regardless of whether the parameters were
- * available or not; missing parameters are converted to the appropriate target
- * type by calling ConvertUtils.convert. Note that the default ConvertUtils
- * converters for the String type returns a null when passed a null, meaning
- * that CallMethodRule will passed null for all String parameters for which
- * there is no parameter info available from the XML. However parameters of
- * type Float and Integer will be passed a real object containing a zero value
- * as that is the output of the default ConvertUtils converters for those
- * types when passed a null. You can register custom converters to change
- * this behaviour; see the beautils library documentation for more info.</p>
- *
- * <p>Note that when a constructor is used with paramCount=0, indicating that
- * the body of the element is to be passed to the target method, an empty
- * element will cause an <i>empty string</i> to be passed to the target method,
- * not null. And if automatic type conversion is being applied (ie if the
- * target function takes something other than a string as a parameter) then
- * the conversion will fail if the converter class does not accept an empty
- * string as valid input.</p>
- *
- * <p>CallMethodRule has a design flaw which can cause it to fail under
- * certain rule configurations. All CallMethodRule instances share a single
- * parameter stack, and all CallParamRule instances simply store their data
- * into the parameter-info structure that is on the top of the stack. This
- * means that two CallMethodRule instances cannot be associated with the
- * same pattern without getting scrambled parameter data. This same issue
- * also applies when a CallMethodRule matches some element X, a different
- * CallMethodRule matches a child element Y and some of the CallParamRules
- * associated with the first CallMethodRule match element Y or one of its
- * child elements. This issue has been present since the very first release
- * of Digester. Note, however, that this configuration of CallMethodRule
- * instances is not commonly required.</p>
*/
-public class CallMethodRule extends Rule {
+public class CallMethodRule
+ extends Rule
+{
// ----------------------------------------------------------- Constructors
-
/**
- * Construct a "call method" rule with the specified method name. The
- * parameter types (if any) default to java.lang.String.
- *
+ * Construct a "call method" rule with the specified method name. The parameter types (if any) default to
+ * java.lang.String.
+ *
* @param methodName Method name of the parent method to call
- * @param paramCount The number of parameters to collect, or
- * zero for a single argument from the body of this element.
+ * @param paramCount The number of parameters to collect, or zero for a single argument from the body of this
+ * element.
*/
- public CallMethodRule(String methodName,
- int paramCount) {
- this(0, methodName, paramCount);
+ public CallMethodRule( String methodName, int paramCount )
+ {
+ this( 0, methodName, paramCount );
}
/**
- * Construct a "call method" rule with the specified method name. The
- * parameter types (if any) default to java.lang.String.
- *
- * @param targetOffset location of the target object. Positive numbers are
- * relative to the top of the digester object stack. Negative numbers
- * are relative to the bottom of the stack. Zero implies the top
- * object on the stack.
+ * Construct a "call method" rule with the specified method name. The parameter types (if any) default to
+ * java.lang.String.
+ *
+ * @param targetOffset location of the target object. Positive numbers are relative to the top of the digester
+ * object stack. Negative numbers are relative to the bottom of the stack. Zero implies the top object on
+ * the stack.
* @param methodName Method name of the parent method to call
- * @param paramCount The number of parameters to collect, or
- * zero for a single argument from the body of this element.
+ * @param paramCount The number of parameters to collect, or zero for a single argument from the body of this
+ * element.
*/
- public CallMethodRule(int targetOffset,
- String methodName,
- int paramCount) {
+ public CallMethodRule( int targetOffset, String methodName, int paramCount )
+ {
this.targetOffset = targetOffset;
this.methodName = methodName;
- this.paramCount = paramCount;
- if (paramCount == 0) {
+ this.paramCount = paramCount;
+ if ( paramCount == 0 )
+ {
this.paramTypes = new Class[] { String.class };
- } else {
+ }
+ else
+ {
this.paramTypes = new Class[paramCount];
- for (int i = 0; i < this.paramTypes.length; i++) {
+ for ( int i = 0; i < this.paramTypes.length; i++ )
+ {
this.paramTypes[i] = String.class;
}
}
@@ -141,180 +126,154 @@ public class CallMethodRule extends Rule
}
/**
- * Construct a "call method" rule with the specified method name.
- * The method should accept no parameters.
- *
+ * Construct a "call method" rule with the specified method name. The method should accept no parameters.
+ *
* @param methodName Method name of the parent method to call
*/
- public CallMethodRule(String methodName) {
-
- this(0, methodName, 0, (Class[]) null);
-
- }
-
+ public CallMethodRule( String methodName )
+ {
+
+ this( 0, methodName, 0, (Class[]) null );
+
+ }
/**
- * Construct a "call method" rule with the specified method name.
- * The method should accept no parameters.
- *
- * @param targetOffset location of the target object. Positive numbers are
- * relative to the top of the digester object stack. Negative numbers
- * are relative to the bottom of the stack. Zero implies the top
- * object on the stack.
+ * Construct a "call method" rule with the specified method name. The method should accept no parameters.
+ *
+ * @param targetOffset location of the target object. Positive numbers are relative to the top of the digester
+ * object stack. Negative numbers are relative to the bottom of the stack. Zero implies the top object on
+ * the stack.
* @param methodName Method name of the parent method to call
*/
- public CallMethodRule(int targetOffset, String methodName) {
-
- this(targetOffset, methodName, 0, (Class[]) null);
-
- }
-
+ public CallMethodRule( int targetOffset, String methodName )
+ {
+
+ this( targetOffset, methodName, 0, (Class[]) null );
+
+ }
/**
- * Construct a "call method" rule with the specified method name and
- * parameter types. If <code>paramCount</code> is set to zero the rule
- * will use the body of this element as the single argument of the
- * method, unless <code>paramTypes</code> is null or empty, in this
- * case the rule will call the specified method with no arguments.
- *
+ * Construct a "call method" rule with the specified method name and parameter types. If <code>paramCount</code> is
+ * set to zero the rule will use the body of this element as the single argument of the method, unless
+ * <code>paramTypes</code> is null or empty, in this case the rule will call the specified method with no arguments.
+ *
* @param methodName Method name of the parent method to call
- * @param paramCount The number of parameters to collect, or
- * zero for a single argument from the body of ths element
- * @param paramTypes The Java class names of the arguments
- * (if you wish to use a primitive type, specify the corresonding
- * Java wrapper class instead, such as <code>java.lang.Boolean</code>
- * for a <code>boolean</code> parameter)
- */
- public CallMethodRule(
- String methodName,
- int paramCount,
- String paramTypes[]) {
- this(0, methodName, paramCount, paramTypes);
+ * @param paramCount The number of parameters to collect, or zero for a single argument from the body of ths element
+ * @param paramTypes The Java class names of the arguments (if you wish to use a primitive type, specify the
+ * corresonding Java wrapper class instead, such as <code>java.lang.Boolean</code> for a
+ * <code>boolean</code> parameter)
+ */
+ public CallMethodRule( String methodName, int paramCount, String paramTypes[] )
+ {
+ this( 0, methodName, paramCount, paramTypes );
}
/**
- * Construct a "call method" rule with the specified method name and
- * parameter types. If <code>paramCount</code> is set to zero the rule
- * will use the body of this element as the single argument of the
- * method, unless <code>paramTypes</code> is null or empty, in this
- * case the rule will call the specified method with no arguments.
- *
- * @param targetOffset location of the target object. Positive numbers are
- * relative to the top of the digester object stack. Negative numbers
- * are relative to the bottom of the stack. Zero implies the top
- * object on the stack.
+ * Construct a "call method" rule with the specified method name and parameter types. If <code>paramCount</code> is
+ * set to zero the rule will use the body of this element as the single argument of the method, unless
+ * <code>paramTypes</code> is null or empty, in this case the rule will call the specified method with no arguments.
+ *
+ * @param targetOffset location of the target object. Positive numbers are relative to the top of the digester
+ * object stack. Negative numbers are relative to the bottom of the stack. Zero implies the top object on
+ * the stack.
* @param methodName Method name of the parent method to call
- * @param paramCount The number of parameters to collect, or
- * zero for a single argument from the body of ths element
- * @param paramTypes The Java class names of the arguments
- * (if you wish to use a primitive type, specify the corresonding
- * Java wrapper class instead, such as <code>java.lang.Boolean</code>
- * for a <code>boolean</code> parameter)
- */
- public CallMethodRule( int targetOffset,
- String methodName,
- int paramCount,
- String paramTypes[]) {
+ * @param paramCount The number of parameters to collect, or zero for a single argument from the body of ths element
+ * @param paramTypes The Java class names of the arguments (if you wish to use a primitive type, specify the
+ * corresonding Java wrapper class instead, such as <code>java.lang.Boolean</code> for a
+ * <code>boolean</code> parameter)
+ */
+ public CallMethodRule( int targetOffset, String methodName, int paramCount, String paramTypes[] )
+ {
this.targetOffset = targetOffset;
this.methodName = methodName;
this.paramCount = paramCount;
- if (paramTypes == null) {
+ if ( paramTypes == null )
+ {
this.paramTypes = new Class[paramCount];
- for (int i = 0; i < this.paramTypes.length; i++) {
+ for ( int i = 0; i < this.paramTypes.length; i++ )
+ {
this.paramTypes[i] = String.class;
}
- } else {
+ }
+ else
+ {
// copy the parameter class names into an array
- // the classes will be loaded when the digester is set
+ // the classes will be loaded when the digester is set
this.paramClassNames = new String[paramTypes.length];
- for (int i = 0; i < this.paramClassNames.length; i++) {
+ for ( int i = 0; i < this.paramClassNames.length; i++ )
+ {
this.paramClassNames[i] = paramTypes[i];
}
}
}
-
/**
- * Construct a "call method" rule with the specified method name and
- * parameter types. If <code>paramCount</code> is set to zero the rule
- * will use the body of this element as the single argument of the
- * method, unless <code>paramTypes</code> is null or empty, in this
- * case the rule will call the specified method with no arguments.
- *
+ * Construct a "call method" rule with the specified method name and parameter types. If <code>paramCount</code> is
+ * set to zero the rule will use the body of this element as the single argument of the method, unless
+ * <code>paramTypes</code> is null or empty, in this case the rule will call the specified method with no arguments.
+ *
* @param methodName Method name of the parent method to call
- * @param paramCount The number of parameters to collect, or
- * zero for a single argument from the body of ths element
- * @param paramTypes The Java classes that represent the
- * parameter types of the method arguments
- * (if you wish to use a primitive type, specify the corresonding
- * Java wrapper class instead, such as <code>java.lang.Boolean.TYPE</code>
- * for a <code>boolean</code> parameter)
- */
- public CallMethodRule(
- String methodName,
- int paramCount,
- Class<?> paramTypes[]) {
- this(0, methodName, paramCount, paramTypes);
+ * @param paramCount The number of parameters to collect, or zero for a single argument from the body of ths element
+ * @param paramTypes The Java classes that represent the parameter types of the method arguments (if you wish to use
+ * a primitive type, specify the corresonding Java wrapper class instead, such as
+ * <code>java.lang.Boolean.TYPE</code> for a <code>boolean</code> parameter)
+ */
+ public CallMethodRule( String methodName, int paramCount, Class<?> paramTypes[] )
+ {
+ this( 0, methodName, paramCount, paramTypes );
}
/**
- * Construct a "call method" rule with the specified method name and
- * parameter types. If <code>paramCount</code> is set to zero the rule
- * will use the body of this element as the single argument of the
- * method, unless <code>paramTypes</code> is null or empty, in this
- * case the rule will call the specified method with no arguments.
- *
- * @param targetOffset location of the target object. Positive numbers are
- * relative to the top of the digester object stack. Negative numbers
- * are relative to the bottom of the stack. Zero implies the top
- * object on the stack.
+ * Construct a "call method" rule with the specified method name and parameter types. If <code>paramCount</code> is
+ * set to zero the rule will use the body of this element as the single argument of the method, unless
+ * <code>paramTypes</code> is null or empty, in this case the rule will call the specified method with no arguments.
+ *
+ * @param targetOffset location of the target object. Positive numbers are relative to the top of the digester
+ * object stack. Negative numbers are relative to the bottom of the stack. Zero implies the top object on
+ * the stack.
* @param methodName Method name of the parent method to call
- * @param paramCount The number of parameters to collect, or
- * zero for a single argument from the body of ths element
- * @param paramTypes The Java classes that represent the
- * parameter types of the method arguments
- * (if you wish to use a primitive type, specify the corresonding
- * Java wrapper class instead, such as <code>java.lang.Boolean.TYPE</code>
- * for a <code>boolean</code> parameter)
- */
- public CallMethodRule( int targetOffset,
- String methodName,
- int paramCount,
- Class<?> paramTypes[]) {
+ * @param paramCount The number of parameters to collect, or zero for a single argument from the body of ths element
+ * @param paramTypes The Java classes that represent the parameter types of the method arguments (if you wish to use
+ * a primitive type, specify the corresonding Java wrapper class instead, such as
+ * <code>java.lang.Boolean.TYPE</code> for a <code>boolean</code> parameter)
+ */
+ public CallMethodRule( int targetOffset, String methodName, int paramCount, Class<?> paramTypes[] )
+ {
this.targetOffset = targetOffset;
this.methodName = methodName;
this.paramCount = paramCount;
- if (paramTypes == null) {
+ if ( paramTypes == null )
+ {
this.paramTypes = new Class[paramCount];
- for (int i = 0; i < this.paramTypes.length; i++) {
+ for ( int i = 0; i < this.paramTypes.length; i++ )
+ {
this.paramTypes[i] = String.class;
}
- } else {
+ }
+ else
+ {
this.paramTypes = new Class[paramTypes.length];
- for (int i = 0; i < this.paramTypes.length; i++) {
+ for ( int i = 0; i < this.paramTypes.length; i++ )
+ {
this.paramTypes[i] = paramTypes[i];
}
}
}
-
// ----------------------------------------------------- Instance Variables
-
/**
* The body text collected from this element.
*/
protected String bodyText = null;
-
- /**
- * location of the target object for the call, relative to the
- * top of the digester object stack. The default value of zero
- * means the target object is the one on top of the stack.
+ /**
+ * location of the target object for the call, relative to the top of the digester object stack. The default value
+ * of zero means the target object is the one on top of the stack.
*/
protected int targetOffset = 0;
@@ -323,69 +282,68 @@ public class CallMethodRule extends Rule
*/
protected String methodName = null;
-
/**
- * The number of parameters to collect from <code>MethodParam</code> rules.
- * If this value is zero, a single parameter will be collected from the
- * body of this element.
+ * The number of parameters to collect from <code>MethodParam</code> rules. If this value is zero, a single
+ * parameter will be collected from the body of this element.
*/
protected int paramCount = 0;
-
/**
* The parameter types of the parameters to be collected.
*/
protected Class<?> paramTypes[] = null;
/**
- * The names of the classes of the parameters to be collected.
- * This attribute allows creation of the classes to be postponed until the digester is set.
+ * The names of the classes of the parameters to be collected. This attribute allows creation of the classes to be
+ * postponed until the digester is set.
*/
private String paramClassNames[] = null;
-
+
/**
* Should <code>MethodUtils.invokeExactMethod</code> be used for reflection.
*/
protected boolean useExactMatch = false;
-
+
// --------------------------------------------------------- Public Methods
-
+
/**
- * Should <code>MethodUtils.invokeExactMethod</code>
- * be used for the reflection.
+ * Should <code>MethodUtils.invokeExactMethod</code> be used for the reflection.
*/
- public boolean getUseExactMatch() {
+ public boolean getUseExactMatch()
+ {
return useExactMatch;
}
-
+
/**
- * Set whether <code>MethodUtils.invokeExactMethod</code>
- * should be used for the reflection.
- */
- public void setUseExactMatch(boolean useExactMatch)
- {
+ * Set whether <code>MethodUtils.invokeExactMethod</code> should be used for the reflection.
+ */
+ public void setUseExactMatch( boolean useExactMatch )
+ {
this.useExactMatch = useExactMatch;
}
/**
- * Set the associated digester.
- * If needed, this class loads the parameter classes from their names.
+ * Set the associated digester. If needed, this class loads the parameter classes from their names.
*/
@Override
- public void setDigester(Digester digester)
+ public void setDigester( Digester digester )
{
// call superclass
- super.setDigester(digester);
+ super.setDigester( digester );
// if necessary, load parameter classes
- if (this.paramClassNames != null) {
+ if ( this.paramClassNames != null )
+ {
this.paramTypes = new Class[paramClassNames.length];
- for (int i = 0; i < this.paramClassNames.length; i++) {
- try {
- this.paramTypes[i] =
- digester.getClassLoader().loadClass(this.paramClassNames[i]);
- } catch (ClassNotFoundException e) {
+ for ( int i = 0; i < this.paramClassNames.length; i++ )
+ {
+ try
+ {
+ this.paramTypes[i] = digester.getClassLoader().loadClass( this.paramClassNames[i] );
+ }
+ catch ( ClassNotFoundException e )
+ {
// use the digester log
- digester.getLogger().error("(CallMethodRule) Cannot load class " + this.paramClassNames[i], e);
+ digester.getLogger().error( "(CallMethodRule) Cannot load class " + this.paramClassNames[i], e );
this.paramTypes[i] = null; // Will cause NPE later
}
}
@@ -394,57 +352,67 @@ public class CallMethodRule extends Rule
/**
* Process the start of this element.
- *
+ *
* @param attributes The attribute list for this element
*/
@Override
- public void begin(String namespace, String name, Attributes attributes) throws Exception {
+ public void begin( String namespace, String name, Attributes attributes )
+ throws Exception
+ {
// Push an array to capture the parameter values if necessary
- if (paramCount > 0) {
+ if ( paramCount > 0 )
+ {
Object parameters[] = new Object[paramCount];
- for (int i = 0; i < parameters.length; i++) {
+ for ( int i = 0; i < parameters.length; i++ )
+ {
parameters[i] = null;
}
- getDigester().pushParams(parameters);
+ getDigester().pushParams( parameters );
}
}
-
/**
* Process the body text of this element.
- *
+ *
* @param bodyText The body text of this element
*/
@Override
- public void body(String namespace, String name, String text) throws Exception {
+ public void body( String namespace, String name, String text )
+ throws Exception
+ {
- if (paramCount == 0) {
+ if ( paramCount == 0 )
+ {
this.bodyText = text.trim();
}
}
-
/**
* Process the end of this element.
*/
@Override
- public void end(String namespace, String name) throws Exception {
+ public void end( String namespace, String name )
+ throws Exception
+ {
// Retrieve or construct the parameter values array
Object parameters[] = null;
- if (paramCount > 0) {
+ if ( paramCount > 0 )
+ {
parameters = getDigester().popParams();
-
- if (getDigester().getLogger().isTraceEnabled()) {
- for (int i=0,size=parameters.length;i<size;i++) {
- getDigester().getLogger().trace("[CallMethodRule](" + i + ")" + parameters[i]) ;
+
+ if ( getDigester().getLogger().isTraceEnabled() )
+ {
+ for ( int i = 0, size = parameters.length; i < size; i++ )
+ {
+ getDigester().getLogger().trace( "[CallMethodRule](" + i + ")" + parameters[i] );
}
}
-
+
// In the case where the target method takes a single parameter
// and that parameter does not exist (the CallParamRule never
// executed or the CallParamRule was intended to set the parameter
@@ -455,29 +423,36 @@ public class CallMethodRule extends Rule
// only be overridden if data is present in the XML. I don't
// know why this should only apply to methods taking *one*
// parameter, but it always has been so we can't change it now.
- if (paramCount == 1 && parameters[0] == null) {
+ if ( paramCount == 1 && parameters[0] == null )
+ {
return;
}
- } else if (paramTypes != null && paramTypes.length != 0) {
+ }
+ else if ( paramTypes != null && paramTypes.length != 0 )
+ {
// Having paramCount == 0 and paramTypes.length == 1 indicates
// that we have the special case where the target method has one
// parameter being the body text of the current element.
// There is no body text included in the source XML file,
// so skip the method call
- if (bodyText == null) {
+ if ( bodyText == null )
+ {
return;
}
parameters = new Object[1];
parameters[0] = bodyText;
- if (paramTypes.length == 0) {
+ if ( paramTypes.length == 0 )
+ {
paramTypes = new Class[1];
paramTypes[0] = String.class;
}
- } else {
+ }
+ else
+ {
// When paramCount is zero and paramTypes.length is zero it
// means that we truly are calling a method with no parameters.
// Nothing special needs to be done here.
@@ -485,106 +460,122 @@ public class CallMethodRule extends Rule
// Construct the parameter values array we will need
// We only do the conversion if the param value is a String and
- // the specified paramType is not String.
+ // the specified paramType is not String.
Object paramValues[] = new Object[paramTypes.length];
- for (int i = 0; i < paramTypes.length; i++) {
- // convert nulls and convert stringy parameters
+ for ( int i = 0; i < paramTypes.length; i++ )
+ {
+ // convert nulls and convert stringy parameters
// for non-stringy param types
- if(
- parameters[i] == null ||
- (parameters[i] instanceof String &&
- !String.class.isAssignableFrom(paramTypes[i]))) {
-
- paramValues[i] =
- ConvertUtils.convert((String) parameters[i], paramTypes[i]);
- } else {
+ if ( parameters[i] == null
+ || ( parameters[i] instanceof String && !String.class.isAssignableFrom( paramTypes[i] ) ) )
+ {
+
+ paramValues[i] = ConvertUtils.convert( (String) parameters[i], paramTypes[i] );
+ }
+ else
+ {
paramValues[i] = parameters[i];
}
}
// Determine the target object for the method call
Object target;
- if (targetOffset >= 0) {
- target = getDigester().peek(targetOffset);
- } else {
+ if ( targetOffset >= 0 )
+ {
+ target = getDigester().peek( targetOffset );
+ }
+ else
+ {
target = getDigester().peek( getDigester().getCount() + targetOffset );
}
-
- if (target == null) {
+
+ if ( target == null )
+ {
StringBuilder sb = new StringBuilder();
- sb.append("[CallMethodRule]{");
- sb.append(getDigester().getMatch());
- sb.append("} Call target is null (");
- sb.append("targetOffset=");
- sb.append(targetOffset);
- sb.append(",stackdepth=");
- sb.append(getDigester().getCount());
- sb.append(")");
- throw new org.xml.sax.SAXException(sb.toString());
+ sb.append( "[CallMethodRule]{" );
+ sb.append( getDigester().getMatch() );
+ sb.append( "} Call target is null (" );
+ sb.append( "targetOffset=" );
+ sb.append( targetOffset );
+ sb.append( ",stackdepth=" );
+ sb.append( getDigester().getCount() );
+ sb.append( ")" );
+ throw new org.xml.sax.SAXException( sb.toString() );
}
-
+
// Invoke the required method on the top object
- if (getDigester().getLogger().isDebugEnabled()) {
- StringBuilder sb = new StringBuilder("[CallMethodRule]{");
- sb.append(getDigester().getMatch());
- sb.append("} Call ");
- sb.append(target.getClass().getName());
- sb.append(".");
- sb.append(methodName);
- sb.append("(");
- for (int i = 0; i < paramValues.length; i++) {
- if (i > 0) {
- sb.append(",");
+ if ( getDigester().getLogger().isDebugEnabled() )
+ {
+ StringBuilder sb = new StringBuilder( "[CallMethodRule]{" );
+ sb.append( getDigester().getMatch() );
+ sb.append( "} Call " );
+ sb.append( target.getClass().getName() );
+ sb.append( "." );
+ sb.append( methodName );
+ sb.append( "(" );
+ for ( int i = 0; i < paramValues.length; i++ )
+ {
+ if ( i > 0 )
+ {
+ sb.append( "," );
+ }
+ if ( paramValues[i] == null )
+ {
+ sb.append( "null" );
+ }
+ else
+ {
+ sb.append( paramValues[i].toString() );
}
- if (paramValues[i] == null) {
- sb.append("null");
- } else {
- sb.append(paramValues[i].toString());
+ sb.append( "/" );
+ if ( paramTypes[i] == null )
+ {
+ sb.append( "null" );
}
- sb.append("/");
- if (paramTypes[i] == null) {
- sb.append("null");
- } else {
- sb.append(paramTypes[i].getName());
+ else
+ {
+ sb.append( paramTypes[i].getName() );
}
}
- sb.append(")");
- getDigester().getLogger().debug(sb.toString());
+ sb.append( ")" );
+ getDigester().getLogger().debug( sb.toString() );
}
-
+
Object result = null;
- if (useExactMatch) {
+ if ( useExactMatch )
+ {
// invoke using exact match
- result = MethodUtils.invokeExactMethod(target, methodName,
- paramValues, paramTypes);
-
- } else {
+ result = MethodUtils.invokeExactMethod( target, methodName, paramValues, paramTypes );
+
+ }
+ else
+ {
// invoke using fuzzier match
- result = MethodUtils.invokeMethod(target, methodName,
- paramValues, paramTypes);
+ result = MethodUtils.invokeMethod( target, methodName, paramValues, paramTypes );
}
-
- processMethodCallResult(result);
- }
+ processMethodCallResult( result );
+ }
/**
* Clean up after parsing is complete.
*/
@Override
- public void finish() throws Exception {
+ public void finish()
+ throws Exception
+ {
bodyText = null;
}
/**
- * Subclasses may override this method to perform additional processing of the
- * invoked method's result.
- *
+ * Subclasses may override this method to perform additional processing of the invoked method's result.
+ *
* @param result the Object returned by the method invoked, possibly null
*/
- protected void processMethodCallResult(Object result) {
+ protected void processMethodCallResult( Object result )
+ {
// do nothing
}
@@ -592,27 +583,30 @@ public class CallMethodRule extends Rule
* Render a printable version of this Rule.
*/
@Override
- public String toString() {
+ public String toString()
+ {
- StringBuilder sb = new StringBuilder("CallMethodRule[");
- sb.append("methodName=");
- sb.append(methodName);
- sb.append(", paramCount=");
- sb.append(paramCount);
- sb.append(", paramTypes={");
- if (paramTypes != null) {
- for (int i = 0; i < paramTypes.length; i++) {
- if (i > 0) {
- sb.append(", ");
+ StringBuilder sb = new StringBuilder( "CallMethodRule[" );
+ sb.append( "methodName=" );
+ sb.append( methodName );
+ sb.append( ", paramCount=" );
+ sb.append( paramCount );
+ sb.append( ", paramTypes={" );
+ if ( paramTypes != null )
+ {
+ for ( int i = 0; i < paramTypes.length; i++ )
+ {
+ if ( i > 0 )
+ {
+ sb.append( ", " );
}
- sb.append(paramTypes[i].getName());
+ sb.append( paramTypes[i].getName() );
}
}
- sb.append("}");
- sb.append("]");
- return (sb.toString());
+ sb.append( "}" );
+ sb.append( "]" );
+ return ( sb.toString() );
}
-
}