- /* $Id: PathCallParamRule.java,v 1.8 2004/05/10 06:52:50 skitching Exp $
- *
- * Copyright 2003-2004 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.commons.digester;
-
-
- import org.xml.sax.Attributes;
-
- /**
- * <p>Rule implementation that saves a parameter containing the
- * <code>Digester</code> matching path for use by a surrounding
- * <code>CallMethodRule</code>. This Rule is most useful when making
- * extensive use of wildcards in rule patterns.</p>
- *
- * @since 1.6
- */
-
- public class PathCallParamRule extends Rule {
-
- // ----------------------------------------------------------- Constructors
-
- /**
- * Construct a "call parameter" rule that will save the body text of this
- * element as the parameter value.
- *
- * @param paramIndex The zero-relative parameter number
- */
- public PathCallParamRule(int paramIndex) {
-
- this.paramIndex = paramIndex;
-
- }
-
- // ----------------------------------------------------- Instance Variables
-
- /**
- * The zero-relative index of the parameter we are saving.
- */
- protected int paramIndex = 0;
-
- // --------------------------------------------------------- Public Methods
-
-
- /**
- * Process the start 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 attributes The attribute list for this element
-
- */
- public void begin(String namespace, String name, Attributes attributes) throws Exception {
-
- String param = getDigester().getMatch();
-
- if(param != null) {
- Object parameters[] = (Object[]) digester.peekParams();
- parameters[paramIndex] = param;
- }
-
- }
-
- /**
- * Render a printable version of this Rule.
- */
- public String toString() {
-
- StringBuffer sb = new StringBuffer("PathCallParamRule[");
- sb.append("paramIndex=");
- sb.append(paramIndex);
- sb.append("]");
- return (sb.toString());
-
- }
- }