View Javadoc

1   /*
2    * Copyright 2006 Outsource Cafe, Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the 'License')
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *    http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an 'AS IS' BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.javagen.agile.core.visitor;
17  
18  import org.javagen.agile.core.Generator;
19  import org.javagen.agile.core.model.Model;
20  import org.javagen.agile.core.xml.XmlReader;
21  import org.javagen.agile.core.xml.jaxb.JAXBXmlReader;
22  
23  /***
24   * Customizes model by reading in metadata XML file and setting all non-null values
25   * on model properties having matching IDs.  Requires all nodes to have IDs and an
26   * index to be present in the root node.
27   *
28   * @author Richard Easterling
29   */
30  public class CustomizerVisitor implements Generator {
31  
32      private XmlReader xmlReader;
33      private IdOverrideVisitor idOverrideVisitor;
34      private String idPrefixFilter;
35      
36      ////////////////////////////////////////////////////////////////////////////
37      // Generator interface:
38      ////////////////////////////////////////////////////////////////////////////
39  
40      public Model gen(Model input) {
41          Model customizedModels = getXmlReader().gen(null);
42          if (customizedModels==null) //if skipIfNoFileFound==true may return null
43              return input;
44          getIdOverrideVisitor().setCustomizingModels(customizedModels);
45          getIdOverrideVisitor().setIdPrefixFilter(idPrefixFilter);
46          getIdOverrideVisitor().gen(input);
47          return input;
48      }
49  
50      ////////////////////////////////////////////////////////////////////////////
51      // getters and setters:
52      ////////////////////////////////////////////////////////////////////////////
53  
54      public XmlReader getXmlReader() {
55          if (xmlReader==null)
56              xmlReader = new JAXBXmlReader();
57          return xmlReader;
58      }
59  
60      public void setXmlReader(XmlReader xmlReader) {
61          this.xmlReader = xmlReader;
62      }
63  
64      public IdOverrideVisitor getIdOverrideVisitor() {
65          if (idOverrideVisitor==null)
66              idOverrideVisitor = new IdOverrideVisitor();
67          return idOverrideVisitor;
68      }
69  
70      public void setIdOverrideVisitor(IdOverrideVisitor idOverrideVisitor) {
71          this.idOverrideVisitor = idOverrideVisitor;
72      }
73  
74      public String getIdPrefixFilter() {
75          return idPrefixFilter;
76      }
77  
78      public void setIdPrefixFilter(String idPrefixFilter) {
79          this.idPrefixFilter = idPrefixFilter;
80      }
81  
82  }