001/* $Id: DumperRule.java 1102402 2011-05-12 18:03:26Z simonetripodi $
002 *
003 * Licensed to the Apache Software Foundation (ASF) under one or more
004 * contributor license agreements.  See the NOTICE file distributed with
005 * this work for additional information regarding copyright ownership.
006 * The ASF licenses this file to You under the Apache License, Version 2.0
007 * (the "License"); you may not use this file except in compliance with
008 * the License.  You may obtain a copy of the License at
009 *
010 *      http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.commons.digester3.plugins;
019
020import org.xml.sax.Attributes;
021import org.apache.commons.digester3.Rule;
022
023/**
024 * Demonstrates the behaviour of the Delegate interface.
025 */
026public class DumperRule
027    extends Rule
028{
029    @Override
030    public void begin( String namespace, String name, Attributes attributes )
031        throws Exception
032    {
033        System.out.print( "<" );
034        System.out.print( name );
035
036        int nAttributes = attributes.getLength();
037        for ( int i = 0; i < nAttributes; ++i )
038        {
039            String key = attributes.getQName( i );
040            String value = attributes.getValue( i );
041            System.out.print( " " );
042            System.out.print( key );
043            System.out.print( "=" );
044            System.out.print( "'" );
045            System.out.print( value );
046            System.out.print( "'" );
047        }
048        System.out.println( ">" );
049    }
050
051    @Override
052    public void body( String namespace, String name, String text )
053        throws Exception
054    {
055        System.out.print( text );
056    }
057
058    @Override
059    public void end( String namespace, String name )
060        throws Exception
061    {
062        System.out.print( "</" );
063        System.out.print( name );
064        System.out.println( ">" );
065    }
066}