1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */ 
17  package org.apache.commons.betwixt;
18  
19  import java.io.FileInputStream;
20  import java.io.InputStream;
21  
22  import org.apache.commons.betwixt.io.BeanWriter;
23  import org.apache.commons.digester.rss.RSSDigester;
24  
25  /** Reads an RSS file using Digesters's RSS demo then uses Betwixt
26    * to output it as XML again.
27    *
28    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
29    * @version $Revision: 438373 $
30    */
31  public class RSSBeanWriter extends AbstractTestCase {
32      
33      public RSSBeanWriter(String testName) {
34          super(testName);
35      }
36  
37      public static void main(String[] args) throws Exception {
38          RSSBeanWriter sample = new RSSBeanWriter("RSS");
39          sample.run( args );
40      }
41      
42      public void run(String[] args) throws Exception {
43          RSSDigester digester = new RSSDigester();
44          Object bean = null;
45          if ( args.length > 0 ) {
46              bean = digester.parse( args[0] );
47          }
48          else {
49              InputStream in = new FileInputStream( getTestFile("src/test/org/apache/commons/betwixt/rss-example.xml") );
50              bean = digester.parse( in ); 
51              in.close();
52          }
53          
54          write( bean );
55      }
56          
57      public void write(Object bean) throws Exception {
58          BeanWriter writer = new BeanWriter();
59          writer.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
60          writer.enablePrettyPrint();
61          writer.write( bean );
62      }
63  }
64