View Javadoc

1   package org.apache.maven.doxia.book.context;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.maven.doxia.book.model.BookModel;
23  
24  import java.io.File;
25  import java.util.Locale;
26  import java.util.Map;
27  import java.util.HashMap;
28  
29  /**
30   * Context to render a book.
31   *
32   * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
33   * @version $Id: BookContext.java 1090706 2011-04-09 23:15:28Z hboutemy $
34   */
35  public class BookContext
36  {
37      /** The BookModel of this context. */
38      private BookModel book;
39  
40      /** The files. */
41      private Map<String, BookContext.BookFile> files;
42  
43      /** The output directory. */
44      private File outputDirectory;
45  
46      /** The BookIndex of this context. */
47      private BookIndex index;
48  
49      /** The Locale used to generate the navigation. */
50      private Locale locale;
51  
52      /** The input encoding used to read Doxia file. */
53      private String inputEncoding;
54  
55      /** The output encoding used to write the renderer files. */
56      private String outputEncoding;
57  
58      // ----------------------------------------------------------------------
59      //
60      // ----------------------------------------------------------------------
61  
62      /** Represents a BookFile. */
63      public static class BookFile
64      {
65          /** The file. */
66          private File file;
67  
68          /** The id of the parser. */
69          private String parserId;
70  
71          /**
72           * Constructor.
73           *
74           * @param file the file.
75           * @param parserId the parser id.
76           */
77          public BookFile( File file, String parserId )
78          {
79              this.file = file;
80              this.parserId = parserId;
81          }
82  
83          /**
84           * Return the file of this BookFile.
85           *
86           * @return File.
87           */
88          public File getFile()
89          {
90              return file;
91          }
92  
93          /**
94           * Return the parserId of this BookFile.
95           *
96           * @return String.
97           */
98          public String getParserId()
99          {
100             return parserId;
101         }
102     }
103 
104     // ----------------------------------------------------------------------
105     // Accessors
106     // ----------------------------------------------------------------------
107 
108     /**
109      * Return the BookModel of this BookContext.
110      *
111      * @return BookModel.
112      */
113     public BookModel getBook()
114     {
115         return book;
116     }
117 
118     /**
119      * Set the BookModel of this BookContext.
120      *
121      * @param book the BookModel.
122      */
123     public void setBook( BookModel book )
124     {
125         this.book = book;
126     }
127 
128     /**
129      * Return the files of this BookContext.
130      *
131      * @return Map. A new HashMap is constructed if the current Map is null.
132      */
133     public Map<String, BookContext.BookFile> getFiles()
134     {
135         if ( files == null )
136         {
137             files = new HashMap<String, BookContext.BookFile>();
138         }
139 
140         return files;
141     }
142 
143     /**
144      * Set the files of this BookContext.
145      *
146      * @param files the Map of files.
147      */
148     public void setFiles( Map<String, BookContext.BookFile> files )
149     {
150         this.files = files;
151     }
152 
153     /**
154      * Return the outputDirectory of this BookContext.
155      *
156      * @return File.
157      */
158     public File getOutputDirectory()
159     {
160         return outputDirectory;
161     }
162 
163     /**
164      * Set the outputDirectory of this BookContext.
165      *
166      * @param outputDirectory the output directory.
167      */
168     public void setOutputDirectory( File outputDirectory )
169     {
170         this.outputDirectory = outputDirectory;
171     }
172 
173     /**
174      * Return the index of this BookContext.
175      *
176      * @return BookIndex.
177      */
178     public BookIndex getIndex()
179     {
180         return index;
181     }
182 
183     /**
184      * Set the index of this BookContext.
185      *
186      * @param index the index to set.
187      */
188     public void setIndex( BookIndex index )
189     {
190         this.index = index;
191     }
192 
193     /**
194      * <p>Getter for the field <code>locale</code>.</p>
195      *
196      * @return the locale
197      * @since 1.1
198      */
199     public Locale getLocale()
200     {
201         return locale;
202     }
203 
204     /**
205      * <p>Setter for the field <code>locale</code>.</p>
206      *
207      * @param locale the locale to set
208      * @since 1.1
209      */
210     public void setLocale( Locale locale )
211     {
212         this.locale = locale;
213     }
214 
215     /**
216      * <p>Getter for the field <code>inputEncoding</code>.</p>
217      *
218      * @return the inputEncoding
219      * @since 1.1
220      */
221     public String getInputEncoding()
222     {
223         return inputEncoding;
224     }
225 
226     /**
227      * <p>Setter for the field <code>inputEncoding</code>.</p>
228      *
229      * @param inputEncoding the inputEncoding to set
230      * @since 1.1
231      */
232     public void setInputEncoding( String inputEncoding )
233     {
234         this.inputEncoding = inputEncoding;
235     }
236 
237     /**
238      * <p>Getter for the field <code>outputEncoding</code>.</p>
239      *
240      * @return the outputEncoding
241      * @since 1.1
242      */
243     public String getOutputEncoding()
244     {
245         return outputEncoding;
246     }
247 
248     /**
249      * <p>Setter for the field <code>outputEncoding</code>.</p>
250      *
251      * @param outputEncoding the outputEncoding to set
252      * @since 1.1
253      */
254     public void setOutputEncoding( String outputEncoding )
255     {
256         this.outputEncoding = outputEncoding;
257     }
258 }