View Javadoc

1   package com.atlassian.plugins.rest.doclet.generators.grammars;
2   
3   import java.util.List;
4   
5   /*
6    * Internal class, don't use directly
7    * 
8    * That class is collection of helper function to transform old grammars.xml parse tree into
9    * tree of new domain objects, see package-info for detailed explanation
10   * 
11   * @author pandronov
12   */
13  public class GrammarTransformer {
14      public static com.sun.research.ws.wadl.Grammars transform(Grammars grm) {
15          com.sun.research.ws.wadl.Grammars result = new com.sun.research.ws.wadl.Grammars();
16          transformDocument(grm.getDoc(), result.getDoc());
17          transformInclude(grm.getInclude(), result.getInclude());
18          result.getAny().addAll(grm.getAny());
19          return result;
20      }
21  
22      private static void transformDocument(List<Doc> src, List<com.sun.research.ws.wadl.Doc> dst) {
23          for (Doc doc : src) {
24              dst.add(transform(doc));
25          }
26      }
27  
28      private static void transformInclude(List<Include> src, List<com.sun.research.ws.wadl.Include> dst) {
29          for (Include inc : src) {
30              dst.add(transform(inc));
31          }
32      }
33  
34      private static com.sun.research.ws.wadl.Doc transform(Doc doc) {
35          com.sun.research.ws.wadl.Doc result = new com.sun.research.ws.wadl.Doc();
36          result.setLang(doc.getLang());
37          result.setTitle(doc.getTitle());
38          result.getOtherAttributes().putAll(doc.getOtherAttributes());
39          result.getContent().addAll(doc.getContent());
40          return result;
41      }
42  
43      private static com.sun.research.ws.wadl.Include transform(Include inc) {
44          com.sun.research.ws.wadl.Include result = new com.sun.research.ws.wadl.Include();
45          transformDocument(inc.getDoc(), result.getDoc());
46          result.setHref(inc.getHref());
47          result.getOtherAttributes().putAll(inc.getOtherAttributes());
48          return result;
49      }
50  }