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.document.business.rules;
35
36 import fr.paris.lutece.portal.service.i18n.I18nService;
37 import fr.paris.lutece.portal.service.util.AppLogService;
38 import fr.paris.lutece.util.ReferenceList;
39
40 import java.util.Collection;
41 import java.util.Locale;
42 import java.util.Map;
43
44
45
46
47 public class RuleTypesSet implements IRuleTypesSet
48 {
49 private Map<String, Rule> _mapRuleTypes;
50
51
52
53
54
55
56
57 public void setRuleTypesMap( Map<String, Rule> mapRules )
58 {
59 _mapRuleTypes = mapRules;
60 }
61
62
63
64
65
66
67
68
69 public Rule newInstance( String strRuleTypeKey )
70 {
71 Rule rule = null;
72
73 try
74 {
75 rule = _mapRuleTypes.get( strRuleTypeKey ).getClass( ).newInstance( );
76 rule.setRuleTypeId( strRuleTypeKey );
77 }
78 catch( InstantiationException e )
79 {
80 AppLogService.error( e.getMessage( ), e );
81 }
82 catch( IllegalAccessException e )
83 {
84 AppLogService.error( e.getMessage( ), e );
85 }
86
87 return rule;
88 }
89
90
91
92
93
94
95 public String getRuleTypeKey( Rule rule )
96 {
97 for ( String key : _mapRuleTypes.keySet( ) )
98 {
99 Rule ruleType;
100
101 try
102 {
103 ruleType = _mapRuleTypes.get( key ).getClass( ).newInstance( );
104
105 if ( ruleType.getClass( ).isInstance( rule ) )
106 {
107 return key;
108 }
109 }
110 catch( InstantiationException e )
111 {
112 AppLogService.error( e.getMessage( ), e );
113 }
114 catch( IllegalAccessException e )
115 {
116 AppLogService.error( e.getMessage( ), e );
117 }
118 }
119
120 return null;
121 }
122
123
124
125
126
127
128 public ReferenceList getRuleTypesList( Locale locale )
129 {
130 ReferenceList listRules = new ReferenceList( );
131
132 for ( String strRuleKey : _mapRuleTypes.keySet( ) )
133 {
134 String strRuleNameKey = newInstance( strRuleKey ).getNameKey( );
135 listRules.addItem( strRuleKey, I18nService.getLocalizedString( strRuleNameKey, locale ) );
136 }
137
138 return listRules;
139 }
140
141
142
143
144
145
146 public Collection<Rule> getRuleTypes( )
147 {
148 return _mapRuleTypes.values( );
149 }
150 }