]> source.dussan.org Git - archiva.git/blob
0f2ce93b81be0b36dcd39e3877632a5762e5fd7d
[archiva.git] /
1 package org.apache.archiva.admin.model.beans;
2 /*
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  */
20
21 import java.io.Serializable;
22 import java.security.KeyStore;
23 import java.util.Collections;
24 import java.util.HashMap;
25 import java.util.Locale;
26 import java.util.Map;
27 import java.util.stream.Collectors;
28
29 /**
30  * @author Olivier Lamy
31  * @since 1.4-M1
32  */
33 public class AbstractRepository
34     implements Serializable
35 {
36
37     private Locale defaultLocale = Locale.getDefault();
38
39     private String type;
40
41     private String id;
42
43     /*
44      * @since 3.0.0 as Map
45      */
46     private Map<Locale, String> name = new HashMap<>(  );
47
48     /*
49      * @since 3.0.0 as Map
50      */
51     private Map<Locale, String> description = new HashMap<>(  );
52
53     private String layout = "default";
54
55     private String indexDirectory;
56
57     private String toStringCache = null;
58
59
60     public AbstractRepository()
61     {
62         // no op
63     }
64
65     public AbstractRepository(Locale defaultLocale) {
66         this.defaultLocale = defaultLocale;
67     }
68
69     public AbstractRepository( Locale defaultLocale,  String id, String name, String layout )
70     {
71         this.defaultLocale = defaultLocale;
72         setId(id);
73         setName(name);
74         setLayout(layout);
75     }
76
77     public AbstractRepository( String id, String name, String layout )
78     {
79         setId(id);
80         setName(name);
81         setLayout(layout);
82     }
83
84     public String getId()
85     {
86         return id;
87     }
88
89     public void setId( String id )
90     {
91         this.toStringCache=null;
92         this.id = id;
93     }
94
95     public String getName()
96     {
97         return name.get(defaultLocale);
98     }
99
100     public Map<String,String> getNames() {
101         if (this.name==null) {
102             return Collections.emptyMap();
103         }
104         return this.name.entrySet().stream().collect( Collectors.toMap( e -> e.getKey().toLanguageTag(), Map.Entry::getValue ) );
105     }
106
107     public void setName( String name )
108     {
109         this.toStringCache=null;
110         this.name.put(defaultLocale, name);
111     }
112
113     public void setName( String languageTag, String name ) {
114         this.toStringCache=null;
115         final Locale loc = Locale.forLanguageTag( languageTag );
116         this.name.put(loc, name);
117     }
118
119     public String getLayout()
120     {
121         return layout;
122     }
123
124     public void setLayout( String layout )
125     {
126         this.toStringCache=null;
127         this.layout = layout;
128     }
129
130
131
132     public String getIndexDirectory()
133     {
134         return indexDirectory;
135     }
136
137     public void setIndexDirectory( String indexDirectory )
138     {
139         this.indexDirectory = indexDirectory;
140     }
141
142     public String getDescription()
143     {
144         return this.description.get(defaultLocale);
145     }
146
147     public Map<String,String> getDescriptions() {
148         if (this.description==null) {
149             return Collections.emptyMap();
150         }
151         return this.description.entrySet().stream().filter( e -> e!=null && e.getKey()!=null )
152             .collect( Collectors.toMap( e -> e.getKey().toLanguageTag(), e -> e.getValue()==null ? "" : e.getValue() ) );
153     }
154
155
156     public void setDescription( String description )
157     {
158         this.toStringCache=null;
159         this.description.put(defaultLocale, description);
160     }
161
162     public void setDescription( String languageTag, String description) {
163         this.toStringCache = null;
164         final Locale loc = Locale.forLanguageTag( languageTag );
165         this.description.put(loc, description);
166     }
167
168     @Override
169     public int hashCode()
170     {
171         int result = 17;
172         result = 37 * result + ( id != null ? id.hashCode() : 0 );
173         return result;
174     }
175
176     @Override
177     public boolean equals( Object other )
178     {
179         if ( this == other )
180         {
181             return true;
182         }
183
184         if ( !( other instanceof AbstractRepository ) )
185         {
186             return false;
187         }
188
189         AbstractRepository that = (AbstractRepository) other;
190         boolean result = true;
191         result = result && ( getId() == null ? that.getId() == null : getId().equals( that.getId() ) );
192         return result;
193     }
194
195     private String getLocaleString(Map<Locale, String>  map) {
196         return map.entrySet().stream().map(entry -> entry.getKey().toLanguageTag()+'='+entry.getValue()).collect( Collectors.joining( ",") );
197     }
198
199     public String getType( )
200     {
201         return type;
202     }
203
204     public void setType(String type) {
205         this.type = type;
206     }
207
208     @Override
209     public String toString()
210     {
211         if (toStringCache!=null) {
212             return toStringCache;
213         } else
214         {
215             final StringBuilder sb = new StringBuilder( );
216             sb.append( "AbstractRepository" );
217             sb.append( "{id='" ).append( id ).append( '\'' );
218             sb.append(", type='").append(type).append('\'');
219             sb.append( ", name='" ).append( getLocaleString( name ) ).append( '\'' );
220             sb.append( ", layout='" ).append( layout ).append( '\'' );
221             sb.append( ", indexDirectory='" ).append( indexDirectory ).append( '\'' );
222             sb.append( ", description='" ).append( getLocaleString( description ) ).append( '\'' );
223             sb.append( '}' );
224             toStringCache=sb.toString( );
225             return toStringCache;
226         }
227     }
228
229
230 }