1 package org.apache.maven.report.projectinfo;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.doxia.sink.Sink;
23 import org.apache.maven.plugins.annotations.Mojo;
24 import org.apache.maven.reporting.AbstractMavenReportRenderer;
25
26 import java.util.Locale;
27
28
29
30
31
32
33
34
35
36 @Mojo( name = "index" )
37 public class ProjectIndexPageReport
38 extends AbstractProjectInfoReport
39 {
40
41
42
43
44 @Override
45 public String getName( Locale locale )
46 {
47 return getI18nString( locale, "title" );
48 }
49
50 @Override
51 public String getDescription( Locale locale )
52 {
53 String desc;
54 if ( project.getDescription() != null )
55 {
56
57 desc = project.getDescription();
58 }
59 else
60 {
61 return getI18nString( locale, "nodescription" );
62 }
63 return desc;
64 }
65
66 @Override
67 public void executeReport( Locale locale )
68 {
69 ProjectIndexRenderer r =
70 new ProjectIndexRenderer( getName( locale ), project.getName(), getDescription( locale ), getSink() );
71
72 r.render();
73 }
74
75
76 public String getOutputName()
77 {
78 return "index";
79 }
80
81 @Override
82 protected String getI18Nsection()
83 {
84 return "index";
85 }
86
87
88
89
90
91
92
93
94 private static class ProjectIndexRenderer
95 extends AbstractMavenReportRenderer
96 {
97 private final String title;
98
99 private final String description;
100
101 private final String name;
102
103 ProjectIndexRenderer( String title, String name, String description, Sink sink )
104 {
105 super( sink );
106
107 this.title = title;
108
109 this.description = description;
110
111 this.name = name;
112 }
113
114 @Override
115 public String getTitle()
116 {
117 return title;
118 }
119
120 @Override
121 public void renderBody()
122 {
123 startSection( title.trim() + " " + name );
124
125 paragraph( description );
126
127 endSection();
128 }
129 }
130 }