1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.pluginwizard.service.generator;
35
36 import fr.paris.lutece.plugins.pluginwizard.business.model.BusinessClass;
37 import fr.paris.lutece.plugins.pluginwizard.business.model.Feature;
38 import fr.paris.lutece.plugins.pluginwizard.business.model.PluginModel;
39 import fr.paris.lutece.plugins.pluginwizard.service.ModelService;
40
41 import java.util.ArrayList;
42 import java.util.Collections;
43 import java.util.HashMap;
44 import java.util.List;
45 import java.util.Map;
46
47
48
49
50
51
52 public class PluginXmlGenerator extends AbstractFileGenerator
53 {
54 private static final String PATH = "webapp/WEB-INF/plugins/";
55
56
57
58
59 @Override
60 public Map generate( PluginModel pm, String generationSchemeName )
61 {
62 return generateFile( pm, generationSchemeName );
63 }
64
65
66
67
68 @Override
69 protected String getCode( PluginModel pm, String generationSchemeName )
70 {
71 Map<String, Object> model = new HashMap<>( );
72
73 setJspName( pm );
74 model.put( Markers.MARK_PLUGIN, pm );
75
76 return build( model );
77 }
78
79 public static void setJspName( PluginModel pm )
80 {
81 for ( Feature feature : pm.getFeatures( ) )
82 {
83 List<BusinessClass> listBusiness = ModelService.getBusinessClassesByFeature( pm, feature.getId( ) );
84
85 if ( ( listBusiness != null ) && ( listBusiness.size( ) > 0 ) )
86 {
87 List<String> BusinessNames = new ArrayList<>( );
88 int i = 0;
89 int id = 0;
90
91 for ( BusinessClass bc : listBusiness )
92 {
93 BusinessNames.add( bc.getBusinessClass( ) );
94 }
95
96 Collections.sort( BusinessNames );
97
98 for ( BusinessClass bc : listBusiness )
99 {
100 if ( bc.getBusinessClass( ).equals( BusinessNames.get( 0 ) ) )
101 {
102 id = i;
103 }
104
105 i++;
106 }
107
108 BusinessClass businessClass = listBusiness.get( id );
109 feature.setJspName( "Manage" + businessClass.getBusinessClassCapsFirst( ) + "s.jsp" );
110 }
111 else
112 {
113 feature.setJspName( feature.getFeatureName( ) + ".jsp" );
114 }
115 }
116 }
117
118
119
120
121 @Override
122 protected String getFilename( PluginModel pm )
123 {
124 return pm.getPluginName( ).toLowerCase( ) + ".xml";
125 }
126
127
128
129
130 @Override
131 public String getPath( )
132 {
133 return PATH;
134 }
135 }