1 /*
2 * Copyright (c) 2002-2025, City of Paris
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright notice
10 * and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright notice
13 * and the following disclaimer in the documentation and/or other materials
14 * provided with the distribution.
15 *
16 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 *
32 * License 1.0
33 */
34 package fr.paris.lutece.portal.service.datastore;
35
36 import fr.paris.lutece.portal.service.i18n.I18nService;
37 import fr.paris.lutece.util.ReferenceItem;
38 import fr.paris.lutece.util.ReferenceList;
39
40 import java.util.ArrayList;
41 import java.util.Collections;
42 import java.util.List;
43 import java.util.Locale;
44
45 /**
46 * This is the business class for the object SiteProperty
47 */
48 public class LocalizedDataGroup
49 {
50 private static final String SUFFIX_HELP = ".help";
51 private static final String SUFFIX_ORDER = ".order";
52 private static final String SUFFIX_GROUP = ".group";
53
54 // Variables declarations
55 private String _strName;
56 private String _strDescription;
57 private List<LocalizedData> _listLocalizedData = new ArrayList<>( );
58
59 /**
60 * Constructor
61 *
62 * @param group
63 * The group
64 * @param locale
65 * The locale
66 */
67 public LocalizedDataGroup( ILocalizedDataGroup group, Locale locale )
68 {
69 _strName = I18nService.getLocalizedString( group.getNameKey( ), locale );
70 _strDescription = I18nService.getLocalizedString( group.getDescriptionKey( ), locale );
71
72 ReferenceList listProperties = DatastoreService.getDataByPrefix( group.getDatastoreKeysPrefix( ) );
73
74 for ( int i = 0; i < listProperties.size( ); i++ )
75 {
76 ReferenceItem item = listProperties.get( i );
77 LocalizedDatadatastore/LocalizedData.html#LocalizedData">LocalizedData property = new LocalizedData( );
78 property.setKey( item.getCode( ) );
79 property.setValue( item.getName( ) );
80 property.setLabel( I18nService.getLocalizedString( item.getCode( ), locale ) );
81 property.setHelp( I18nService.getLocalizedString( item.getCode( ) + SUFFIX_HELP, locale ) );
82 property.setGroup( I18nService.getLocalizedString( item.getCode( ) + SUFFIX_GROUP, locale ) );
83 property.setOrder( I18nService.getLocalizedString( item.getCode( ) + SUFFIX_ORDER, locale ) );
84 _listLocalizedData.add( property );
85 }
86 Collections.sort( _listLocalizedData );
87 }
88
89 /**
90 * Returns the Name
91 *
92 * @return The Name
93 */
94 public String getName( )
95 {
96 return _strName;
97 }
98
99 /**
100 * Sets the Name
101 *
102 * @param strName
103 * The Name
104 */
105 public void setName( String strName )
106 {
107 _strName = strName;
108 }
109
110 /**
111 * Returns the Description
112 *
113 * @return The Description
114 */
115 public String getDescription( )
116 {
117 return _strDescription;
118 }
119
120 /**
121 * Sets the Description
122 *
123 * @param strDescription
124 * The Description
125 */
126 public void setDescription( String strDescription )
127 {
128 _strDescription = strDescription;
129 }
130
131 /**
132 * Returns the localized data list
133 *
134 * @return The localized data list
135 */
136 public List<LocalizedData> getLocalizedDataList( )
137 {
138 return _listLocalizedData;
139 }
140
141 /**
142 * Sets the localized data list
143 *
144 * @param listLocalizedData
145 * The localized data list
146 */
147 public void setLocalizedDataList( List<LocalizedData> listLocalizedData )
148 {
149 _listLocalizedData = listLocalizedData;
150 }
151 }