You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Volker Karlmeier (JIRA)" <ji...@apache.org> on 2008/11/16 22:26:44 UTC
[jira] Updated: (DIGESTER-131) [PATCH] commons-digester / Allow
recursive match in ExtendedBaseRules.java (see comments to patch)
[ https://issues.apache.org/jira/browse/DIGESTER-131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Volker Karlmeier updated DIGESTER-131:
--------------------------------------
Attachment: ExtendedBaseRules.patch
> [PATCH] commons-digester / Allow recursive match in ExtendedBaseRules.java (see comments to patch)
> --------------------------------------------------------------------------------------------------
>
> Key: DIGESTER-131
> URL: https://issues.apache.org/jira/browse/DIGESTER-131
> Project: Commons Digester
> Issue Type: Improvement
> Environment: all
> Reporter: Volker Karlmeier
> Attachments: ExtendedBaseRules.patch
>
> Original Estimate: 0.17h
> Remaining Estimate: 0.17h
>
> Index: /home/volker/workspace/commons-digester/src/java/org/apache/commons/digester/ExtendedBaseRules.java
> ===================================================================
> - --- /home/volker/workspace/commons-digester/src/java/org/apache/commons/digester/ExtendedBaseRules.java (revision 718060)
> +++ /home/volker/workspace/commons-digester/src/java/org/apache/commons/digester/ExtendedBaseRules.java (working copy)
> @@ -234,6 +234,32 @@
> ~ // we keep the list of universal matches separate
> ~ List universalList = new ArrayList(counter);
> + // Universal wildcards ('*') in the middle of the pattern-string
> + List recList = null;
> + int parentLastIndex=-1;
> + // temporary parentPattern
> + // we don't want to change anything....
> + String tempParentPattern = parentPattern;
> + // look for pattern. Here, we search the whole
> + // parent.
> + while ((parentLastIndex = tempParentPattern.lastIndexOf('/')) > -1 && recList == null) {
> + recList = (List) this.cache.get(tempParentPattern+"/*/"+pattern.substring(lastIndex+1));
> + if (recList != null) {
> + // when /*/-pattern-string is found, add method
> + // list to universalList.
> + // Digester will do the rest
> + universalList.addAll(recList);
> + } else {
> + // if not, shorten tempParent to move /*/ one position
> + // to the left.
> + // as last part of patttern is always added
> + // we make sure pattern is allowed anywhere.
> + tempParentPattern=parentPattern.substring(0, parentLastIndex);
> + }
> + + }
> + + ~ // Universal all wildards ('!*')
> ~ // These are always matched so always add them
> ~ List tempList = (List) this.cache.get("!*");
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.