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.genericattributes.service.entrytype;
35
36 import java.util.List;
37 import java.util.Locale;
38
39 import javax.servlet.http.HttpServletRequest;
40
41 import org.apache.commons.lang3.StringUtils;
42
43 import fr.paris.lutece.plugins.genericattributes.business.Entry;
44 import fr.paris.lutece.plugins.genericattributes.business.Field;
45 import fr.paris.lutece.plugins.genericattributes.business.FieldHome;
46 import fr.paris.lutece.plugins.genericattributes.business.GenericAttributeError;
47 import fr.paris.lutece.plugins.genericattributes.business.Response;
48 import fr.paris.lutece.plugins.genericattributes.util.EntryTypeNumberingUtil;
49 import fr.paris.lutece.plugins.genericattributes.util.GenericAttributesUtils;
50 import fr.paris.lutece.portal.service.i18n.I18nService;
51 import fr.paris.lutece.portal.service.message.AdminMessage;
52 import fr.paris.lutece.portal.service.message.AdminMessageService;
53
54
55
56
57 public abstract class AbstractEntryTypeNumbering extends EntryTypeService
58 {
59
60 private static final String PARAMETER_PREFIX = "prefix";
61
62
63
64
65 @Override
66 public String getRequestData( Entry entry, HttpServletRequest request, Locale locale )
67 {
68 initCommonRequestData( entry, request );
69 String strTitle = request.getParameter( PARAMETER_TITLE );
70 String strCode = request.getParameter( PARAMETER_ENTRY_CODE );
71 String strPrefix = request.getParameter( PARAMETER_PREFIX );
72 String strIndexed = request.getParameter( PARAMETER_INDEXED );
73 String strCSSClass = request.getParameter( PARAMETER_CSS_CLASS );
74
75 String strFieldError = StringUtils.EMPTY;
76
77 if ( StringUtils.isBlank( strTitle ) )
78 {
79 strFieldError = ERROR_FIELD_TITLE;
80 }
81
82 if ( StringUtils.isNotBlank( strFieldError ) )
83 {
84 Object [ ] tabRequiredFields = {
85 I18nService.getLocalizedString( strFieldError, locale )
86 };
87
88 return AdminMessageService.getMessageUrl( request, MESSAGE_MANDATORY_FIELD, tabRequiredFields, AdminMessage.TYPE_STOP );
89 }
90
91 entry.setCode( strCode );
92 entry.setTitle( strTitle );
93 entry.setCSSClass( strCSSClass );
94
95 GenericAttributesUtils.createOrUpdateField( entry, FIELD_PREFIX, null, StringUtils.isNotEmpty( strPrefix ) ? strPrefix : StringUtils.EMPTY );
96 entry.setIndexed( strIndexed != null );
97 return null;
98 }
99
100
101
102
103 @Override
104 public GenericAttributeError getResponseData( Entry entry, HttpServletRequest request, List<Response> listResponse, Locale locale )
105 {
106 int numbering = EntryTypeNumberingUtil.getInstance( ).getNextValue( entry.getIdEntry( ) );
107 Response/genericattributes/business/Response.html#Response">Response response = new Response( );
108 response.setEntry( entry );
109 response.setResponseValue( String.valueOf( numbering ) );
110 response.setIterationNumber( getResponseIterationValue( request ) );
111 listResponse.add( response );
112
113 return null;
114 }
115
116
117
118
119 @Override
120 public String getResponseValueForExport( Entry entry, HttpServletRequest request, Response response, Locale locale )
121 {
122 return getResponseValue( entry, response );
123 }
124
125
126
127
128 @Override
129 public String getResponseValueForRecap( Entry entry, HttpServletRequest request, Response response, Locale locale )
130 {
131 return getResponseValue( entry, response );
132 }
133
134
135
136
137
138
139
140
141
142
143 private String getResponseValue( Entry entry, Response response )
144 {
145 if ( entry.getFields( ) == null )
146 {
147 entry.setFields( FieldHome.getFieldListByIdEntry( entry.getIdEntry( ) ) );
148 }
149 Field field = entry.getFieldByCode( FIELD_PREFIX );
150
151 if ( field != null && StringUtils.isNotBlank( field.getValue( ) ) )
152 {
153 return field.getValue( ) + response.getResponseValue( );
154 }
155
156 return response.getResponseValue( );
157 }
158 }