View Javadoc

1   /*
2    * The Apache Software License, Version 1.1
3    *
4    * Copyright (c) 1999, 2000 The Apache Software Foundation.  All rights
5    * reserved.
6    *
7    * Redistribution and use in source and binary forms, with or without
8    * modification, are permitted provided that the following conditions
9    * are met:
10   *
11   * 1. Redistributions of source code must retain the above copyright
12   *    notice, this list of conditions and the following disclaimer.
13   *
14   * 2. Redistributions in binary form must reproduce the above copyright
15   *    notice, this list of conditions and the following disclaimer in
16   *    the documentation and/or other materials provided with the
17   *    distribution.
18   *
19   * 3. The end-user documentation included with the redistribution, if
20   *    any, must include the following acknowlegement:
21   *       "This product includes software developed by the
22   *        Apache Software Foundation (http://www.apache.org/)."
23   *    Alternately, this acknowlegement may appear in the software itself,
24   *    if and wherever such third-party acknowlegements normally appear.
25   *
26   * 4. The names "The Jakarta Project", "Ant", and "Apache Software
27   *    Foundation" must not be used to endorse or promote products derived
28   *    from this software without prior written permission. For written
29   *    permission, please contact apache@apache.org.
30   *
31   * 5. Products derived from this software may not be called "Apache"
32   *    nor may "Apache" appear in their names without prior written
33   *    permission of the Apache Group.
34   *
35   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46   * SUCH DAMAGE.
47   * ====================================================================
48   *
49   * This software consists of voluntary contributions made by many
50   * individuals on behalf of the Apache Software Foundation.  For more
51   * information on the Apache Software Foundation, please see
52   * <http://www.apache.org/>.
53   */
54  
55  package org.xrn.core;
56  
57  import java.io.File;
58  import java.util.List;
59  
60  import javax.xml.bind.JAXBContext;
61  import javax.xml.bind.JAXBException;
62  import javax.xml.bind.UnmarshalException;
63  import javax.xml.bind.Unmarshaller;
64  
65  import org.w3c.dom.Document;
66  import org.xrn.xsd2java.MultipleReleaseNotes;
67  import org.xrn.xsd2java.ReleaseNotes;
68  import org.xrn.xsd2java.ReleaseNotesType;
69  
70  /***
71   * The aim of this class is to provide a entry point for XRN-Java plug-ins.
72   * 
73   * @author Edouard Mercier
74   * @version
75   * @XRN_VERSION@
76   * @since V0.18.1
77   */
78  public class Plugin
79  {
80  
81    public void run(File file) throws Exception
82    {
83      doTheJob(file);
84    }
85  
86    public void run(Document document) throws Exception
87    {
88      doTheJob(document);
89    }
90  
91    private void doTheJob(Object object) throws Exception
92    {
93  
94      MultipleReleaseNotes multiple_release_notes = null;
95      try
96      {
97        JAXBContext jContext = JAXBContext.newInstance("org.xrn.xsd2java");
98        Unmarshaller unmarshaller = jContext.createUnmarshaller();
99        // The validation is disabled in order to make sure that the unmarshaller works
100       unmarshaller.setValidating(false);
101       if (object instanceof Document)
102       {
103         multiple_release_notes = (MultipleReleaseNotes) unmarshaller
104             .unmarshal((Document) object);
105       }
106       else if (object instanceof File)
107       {
108         multiple_release_notes = (MultipleReleaseNotes) unmarshaller
109             .unmarshal((File) object);
110       }
111 
112     }
113     catch (UnmarshalException unmarshal_exception)
114     {
115       throw unmarshal_exception;
116     }
117     catch (JAXBException jaxb_exception)
118     {
119       throw jaxb_exception;
120     }
121     System.out.println(multiple_release_notes.getXRNVersion());
122     List releasenotes_list = multiple_release_notes.getReleaseNotes();
123     for (int index = 0; index < releasenotes_list.size(); index++)
124     {
125       ReleaseNotesType release_notes_type = (ReleaseNotesType) releasenotes_list.get(index);
126       System.out.println(release_notes_type.getID() + " for XRN V" + release_notes_type.getVersion());
127       ;
128     }
129   }
130 
131 }