View Javadoc
1   /*
2    * #%L
3    * JRst :: Api
4    * %%
5    * Copyright (C) 2004 - 2010 CodeLutin
6    * %%
7    * This program is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU Lesser General Public License as 
9    * published by the Free Software Foundation, either version 3 of the 
10   * License, or (at your option) any later version.
11   * 
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Lesser Public License for more details.
16   * 
17   * You should have received a copy of the GNU General Lesser Public 
18   * License along with this program.  If not, see
19   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
20   * #L%
21   */
22  package org.nuiton.jrst.convertisor;
23  
24  import java.util.List;
25  import org.apache.commons.logging.Log;
26  import org.apache.commons.logging.LogFactory;
27  import org.dom4j.Element;
28  
29  import static org.nuiton.jrst.legacy.ReStructuredText.PARAGRAPH;
30  import static org.nuiton.jrst.legacy.ReStructuredText.TITLE;
31  import static org.nuiton.jrst.legacy.ReStructuredText.TITLE_CHAR;
32  
33  /**
34   *
35   * @author letellier
36   */
37  public class DocUtils2RST extends DocUtilsVisitor {
38  
39      /** to use log facility, just put in your code: log.info(\"...\"); */
40      private static Log log = LogFactory.getLog(DocUtils2RST.class);
41      protected int level;
42  
43      @Override
44      public String composeDocument(Element e) {
45          return EMPTY_STRING;
46      }
47  
48      @Override
49      public String composeTitle(Element e) {
50          String result = e.getText();
51          String underLine = EMPTY_STRING;
52          for (int i = 0; i < result.length(); i++) {
53              underLine += TITLE_CHAR.charAt(level);
54          }
55          result += LINE_SEPARATOR + underLine + LINE_SEPARATOR;
56          log.debug("composeTitle :\n" + result);
57          return result;
58      }
59  
60      @Override
61      public String composeSubTitle(Element e) {
62          String result = e.getText();
63          String underLine = EMPTY_STRING;
64          for (int i = 0; i < result.length(); i++) {
65              underLine += TITLE_CHAR.charAt(level);
66          }
67          result += LINE_SEPARATOR + underLine + LINE_SEPARATOR;
68          log.debug("composeSubTitle :\n" + result);
69          return result;
70      }
71  
72      @Override
73      public String composeDocInfo(Element e) {
74          return EMPTY_STRING;
75      }
76  
77      @Override
78      public String composeAutor(Element e) {
79          return EMPTY_STRING;
80      }
81  
82      @Override
83      public String composeAutors(Element e) {
84          return EMPTY_STRING;
85      }
86  
87      @Override
88      public String composeOrganisation(Element e) {
89          return EMPTY_STRING;
90      }
91  
92      @Override
93      public String composeAddress(Element e) {
94          return EMPTY_STRING;
95      }
96  
97      @Override
98      public String composeContact(Element e) {
99          return EMPTY_STRING;
100     }
101 
102     @Override
103     public String composeVersion(Element e) {
104         return EMPTY_STRING;
105     }
106 
107     @Override
108     public String composeResvision(Element e) {
109         return EMPTY_STRING;
110     }
111 
112     @Override
113     public String composeStatus(Element e) {
114         return EMPTY_STRING;
115     }
116 
117     @Override
118     public String composeDate(Element e) {
119         return EMPTY_STRING;
120     }
121 
122     @Override
123     public String composeCopyright(Element e) {
124         return EMPTY_STRING;
125     }
126 
127     @Override
128     public String composeDecoration(Element e) {
129         return EMPTY_STRING;
130     }
131 
132     @Override
133     public String composeHeader(Element e) {
134         return EMPTY_STRING;
135     }
136 
137     @Override
138     public String composeFooter(Element e) {
139         return EMPTY_STRING;
140     }
141 
142     @Override
143     public String composeSection(Element e) {
144         level++;
145         return EMPTY_STRING;
146     }
147 
148     @Override
149     public String composeTopic(Element e) {
150         StringBuilder buffer = new StringBuilder(".. topic:: ");
151         level++;
152         List<?> elements = e.elements();
153         for (Object o : elements) {
154             Element element = (Element) o;
155             try {
156                 if (elementEquals(TITLE, element)) {
157                     log.debug("topic title : " + element.getText());
158                     buffer.append(indent(element.getText()));
159                 } else if (elementEquals(PARAGRAPH, element)) {
160                     log.trace("topic para (from element) : " + element.getText());
161                     String para = parseDocument(element);
162                     log.debug("topic para (from parsing) : " + para);
163                     buffer.append(indent(para));
164                 }
165             } finally {
166                 // always mark the node as fired
167                 addCachedElement(element);
168             }
169         }
170         --level;
171         String result = buffer.toString();
172         log.debug("composeTopic :\n" + result);
173         return result;
174     }
175 
176     @Override
177     public String composeSideBar(Element e) {
178         return EMPTY_STRING;
179     }
180 
181     @Override
182     public String composeTransition(Element e) {
183         return EMPTY_STRING;
184     }
185 
186     @Override
187     public String composeParagraph(Element e) {
188         String result = indent(e.getText(), level);
189         log.debug("composeParagraph :\n" + result);
190         return result;
191     }
192 
193     @Override
194     public String composeCompound(Element e) {
195         return EMPTY_STRING;
196     }
197 
198     @Override
199     public String composeContainer(Element e) {
200         return EMPTY_STRING;
201     }
202 
203     @Override
204     public String composeBulletList(Element e) {
205         return EMPTY_STRING;
206     }
207 
208     @Override
209     public String composeEnumeratedList(Element e) {
210         return EMPTY_STRING;
211     }
212 
213     @Override
214     public String composeListItem(Element e) {
215         return EMPTY_STRING;
216     }
217 
218     @Override
219     public String composeDefinitionList(Element e) {
220         return EMPTY_STRING;
221     }
222 
223     @Override
224     public String composeDefinitionListItem(Element e) {
225         return EMPTY_STRING;
226     }
227 
228     @Override
229     public String composeTerm(Element e) {
230         return EMPTY_STRING;
231     }
232 
233     @Override
234     public String composeClassifier(Element e) {
235         return EMPTY_STRING;
236     }
237 
238     @Override
239     public String composeDefinition(Element e) {
240         return EMPTY_STRING;
241     }
242 
243     @Override
244     public String composeFieldList(Element e) {
245         return EMPTY_STRING;
246     }
247 
248     @Override
249     public String composeField(Element e) {
250         return EMPTY_STRING;
251     }
252 
253     @Override
254     public String composeFieldName(Element e) {
255         return EMPTY_STRING;
256     }
257 
258     @Override
259     public String composeFieldBody(Element e) {
260         return EMPTY_STRING;
261     }
262 
263     @Override
264     public String composeOptionList(Element e) {
265         return EMPTY_STRING;
266     }
267 
268     @Override
269     public String composeOptionListItem(Element e) {
270         return EMPTY_STRING;
271     }
272 
273     @Override
274     public String composeOptionGroup(Element e) {
275         return EMPTY_STRING;
276     }
277 
278     @Override
279     public String composeOption(Element e) {
280         return EMPTY_STRING;
281     }
282 
283     @Override
284     public String composeOptionString(Element e) {
285         return EMPTY_STRING;
286     }
287 
288     @Override
289     public String composeOptionArgument(Element e) {
290         return EMPTY_STRING;
291     }
292 
293     @Override
294     public String composeDescription(Element e) {
295         return EMPTY_STRING;
296     }
297 
298     @Override
299     public String composeLiteralBlock(Element e) {
300         return EMPTY_STRING;
301     }
302 
303     @Override
304     public String composeLineBlock(Element e) {
305         return EMPTY_STRING;
306     }
307 
308     @Override
309     public String composeLine(Element e) {
310         return EMPTY_STRING;
311     }
312 
313     @Override
314     public String composeBlockQuote(Element e) {
315         return EMPTY_STRING;
316     }
317 
318     @Override
319     public String composeAttribution(Element e) {
320         return EMPTY_STRING;
321     }
322 
323     @Override
324     public String composeDocTestBlock(Element e) {
325         return EMPTY_STRING;
326     }
327 
328     @Override
329     public String composeAttention(Element e) {
330         return EMPTY_STRING;
331     }
332 
333     @Override
334     public String composeCaution(Element e) {
335         return EMPTY_STRING;
336     }
337 
338     @Override
339     public String composeDanger(Element e) {
340         return EMPTY_STRING;
341     }
342 
343     @Override
344     public String composeError(Element e) {
345         return EMPTY_STRING;
346     }
347 
348     @Override
349     public String composeHint(Element e) {
350         return EMPTY_STRING;
351     }
352 
353     @Override
354     public String composeImportant(Element e) {
355         return EMPTY_STRING;
356     }
357 
358     @Override
359     public String composeNote(Element e) {
360         return EMPTY_STRING;
361     }
362 
363     @Override
364     public String composeTip(Element e) {
365         return EMPTY_STRING;
366     }
367 
368     @Override
369     public String composeWarning(Element e) {
370         return EMPTY_STRING;
371     }
372 
373     @Override
374     public String composeAdmonition(Element e) {
375         return EMPTY_STRING;
376     }
377 
378     @Override
379     public String composeFootnote(Element e) {
380         return EMPTY_STRING;
381     }
382 
383     @Override
384     public String composeCitation(Element e) {
385         return EMPTY_STRING;
386     }
387 
388     @Override
389     public String composeLabel(Element e) {
390         return EMPTY_STRING;
391     }
392 
393     @Override
394     public String composeRubric(Element e) {
395         return EMPTY_STRING;
396     }
397 
398     @Override
399     public String composeTarget(Element e) {
400         return EMPTY_STRING;
401     }
402 
403     @Override
404     public String composeSubstitutionDefinition(Element e) {
405         return EMPTY_STRING;
406     }
407 
408     @Override
409     public String composeComment(Element e) {
410         return EMPTY_STRING;
411     }
412 
413     @Override
414     public String composePending(Element e) {
415         return EMPTY_STRING;
416     }
417 
418     @Override
419     public String composeFigure(Element e) {
420         return EMPTY_STRING;
421     }
422 
423     @Override
424     public String composeImage(Element e) {
425         return EMPTY_STRING;
426     }
427 
428     @Override
429     public String composeCaption(Element e) {
430         return EMPTY_STRING;
431     }
432 
433     @Override
434     public String composeLegend(Element e) {
435         return EMPTY_STRING;
436     }
437 
438     @Override
439     public String composeSystemMessage(Element e) {
440         return EMPTY_STRING;
441     }
442 
443     @Override
444     public String composeRaw(Element e) {
445         return EMPTY_STRING;
446     }
447 
448     @Override
449     public String composeTable(Element e) {
450         return EMPTY_STRING;
451     }
452 
453     @Override
454     public String composeTgroup(Element e) {
455         return EMPTY_STRING;
456     }
457 
458     @Override
459     public String composeColspec(Element e) {
460         return EMPTY_STRING;
461     }
462 
463     @Override
464     public String composeThead(Element e) {
465         return EMPTY_STRING;
466     }
467 
468     @Override
469     public String composeTbody(Element e) {
470         return EMPTY_STRING;
471     }
472 
473     @Override
474     public String composeRow(Element e) {
475         return EMPTY_STRING;
476     }
477 
478     @Override
479     public String composeEntry(Element e) {
480         return EMPTY_STRING;
481     }
482 
483     @Override
484     public String composeEmphasis(Element e) {
485         return EMPTY_STRING;
486     }
487 
488     @Override
489     public String composeStrong(Element e) {
490         return EMPTY_STRING;
491     }
492 
493     @Override
494     public String composeLiteral(Element e) {
495         return EMPTY_STRING;
496     }
497 
498     @Override
499     public String composeReference(Element e) {
500         return EMPTY_STRING;
501     }
502 
503     @Override
504     public String composeFootnoteReference(Element e) {
505         String result = indent(e.getText(), level);
506         log.warn("composeFootnoteReference :\n" + result);
507         return EMPTY_STRING;
508     }
509 
510     @Override
511     public String composeCitationReference(Element e) {
512         return EMPTY_STRING;
513     }
514 
515     @Override
516     public String composeSubstitutionReference(Element e) {
517         return EMPTY_STRING;
518     }
519 
520     @Override
521     public String composeTitleReference(Element e) {
522         return EMPTY_STRING;
523     }
524 
525     @Override
526     public String composeAbbreviation(Element e) {
527         return EMPTY_STRING;
528     }
529 
530     @Override
531     public String composeAcronyme(Element e) {
532         return EMPTY_STRING;
533     }
534 
535     @Override
536     public String composeSuperscipt(Element e) {
537         return EMPTY_STRING;
538     }
539 
540     @Override
541     public String composeSubscript(Element e) {
542         return EMPTY_STRING;
543     }
544 
545     @Override
546     public String composeInline(Element e) {
547         return EMPTY_STRING;
548     }
549 
550     @Override
551     public String composeProblematic(Element e) {
552         return EMPTY_STRING;
553     }
554 
555     @Override
556     public String composeGenerated(Element e) {
557         return EMPTY_STRING;
558     }
559 
560     protected String indent(String toIndent) {
561         return indent(toIndent, level);
562     }
563 }
564