]> source.dussan.org Git - archiva.git/blob
c5ecf32ec119b4febe22f1035fdcdc3f8005959a
[archiva.git] /
1 package org.apache.archiva.admin.repository;
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.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.List;
25 import java.util.Map;
26
27 /**
28  * @author Olivier Lamy
29  * @since 1.4
30  */
31 public abstract class AbstractRepositoryConnector
32     implements Serializable
33 {
34     /**
35      * The Repository Source for this connector.
36      */
37     private String sourceRepoId;
38
39     /**
40      * The Repository Target for this connector.
41      */
42     private String targetRepoId;
43
44     /**
45      * The network proxy ID to use for this connector.
46      */
47     private String proxyId;
48
49     /**
50      * Field blackListPatterns.
51      */
52     private List<String> blackListPatterns;
53
54     /**
55      * Field whiteListPatterns.
56      */
57     private List<String> whiteListPatterns;
58
59     /**
60      * Field policies.
61      */
62     private Map<String, String> policies;
63
64     /**
65      * Field properties.
66      */
67     private Map<String, String> properties;
68
69     /**
70      * If the the repository proxy connector is disabled or not
71      */
72     private boolean disabled = false;
73
74     //-----------/
75     //- Methods -/
76     //-----------/
77
78     /**
79      * Method addBlackListPattern.
80      *
81      * @param string
82      */
83     public void addBlackListPattern( String string )
84     {
85         getBlackListPatterns().add( string );
86     }
87
88     /**
89      * Method addPolicy.
90      *
91      * @param key
92      * @param value
93      */
94     public void addPolicy( String key, String value )
95     {
96         getPolicies().put( key, value );
97     }
98
99     /**
100      * Method addProperty.
101      *
102      * @param key
103      * @param value
104      */
105     public void addProperty( String key, String value )
106     {
107         getProperties().put( key, value );
108     }
109
110     /**
111      * Method addWhiteListPattern.
112      *
113      * @param string
114      */
115     public void addWhiteListPattern( String string )
116     {
117         getWhiteListPatterns().add( string );
118     }
119
120     /**
121      * Method getBlackListPatterns.
122      *
123      * @return List
124      */
125     public List<String> getBlackListPatterns()
126     {
127         if ( this.blackListPatterns == null )
128         {
129             this.blackListPatterns = new ArrayList<String>();
130         }
131
132         return this.blackListPatterns;
133     }
134
135     /**
136      * Method getPolicies.
137      *
138      * @return Map
139      */
140     public Map<String, String> getPolicies()
141     {
142         if ( this.policies == null )
143         {
144             this.policies = new HashMap<String, String>();
145         }
146
147         return this.policies;
148     }
149
150     /**
151      * Method getProperties.
152      *
153      * @return Map
154      */
155     public Map<String, String> getProperties()
156     {
157         if ( this.properties == null )
158         {
159             this.properties = new HashMap<String, String>();
160         }
161
162         return this.properties;
163     }
164
165     /**
166      * Get the network proxy ID to use for this connector.
167      *
168      * @return String
169      */
170     public String getProxyId()
171     {
172         return this.proxyId;
173     }
174
175     /**
176      * Get the Repository Source for this connector.
177      *
178      * @return String
179      */
180     public String getSourceRepoId()
181     {
182         return this.sourceRepoId;
183     }
184
185     /**
186      * Get the Repository Target for this connector.
187      *
188      * @return String
189      */
190     public String getTargetRepoId()
191     {
192         return this.targetRepoId;
193     }
194
195     /**
196      * Method getWhiteListPatterns.
197      *
198      * @return List
199      */
200     public List<String> getWhiteListPatterns()
201     {
202         if ( this.whiteListPatterns == null )
203         {
204             this.whiteListPatterns = new ArrayList<String>();
205         }
206
207         return this.whiteListPatterns;
208     }
209
210     /**
211      * Get if the the repository proxy connector is disabled or not
212      * .
213      *
214      * @return boolean
215      */
216     public boolean isDisabled()
217     {
218         return this.disabled;
219     }
220
221     /**
222      * Method removeBlackListPattern.
223      *
224      * @param string
225      */
226     public void removeBlackListPattern( String string )
227     {
228         getBlackListPatterns().remove( string );
229     }
230
231     /**
232      * Method removeWhiteListPattern.
233      *
234      * @param string
235      */
236     public void removeWhiteListPattern( String string )
237     {
238         getWhiteListPatterns().remove( string );
239     }
240
241     /**
242      * Set the list of blacklisted patterns for this connector.
243      *
244      * @param blackListPatterns
245      */
246     public void setBlackListPatterns( List<String> blackListPatterns )
247     {
248         this.blackListPatterns = blackListPatterns;
249     }
250
251     /**
252      * Set if the the repository proxy connector is
253      * disabled or not
254      * .
255      *
256      * @param disabled
257      */
258     public void setDisabled( boolean disabled )
259     {
260         this.disabled = disabled;
261     }
262
263     /**
264      * Set policy configuration for the connector.
265      *
266      * @param policies
267      */
268     public void setPolicies( Map<String, String> policies )
269     {
270         this.policies = policies;
271     }
272
273     /**
274      * Set configuration for the connector.
275      *
276      * @param properties
277      */
278     public void setProperties( Map<String, String> properties )
279     {
280         this.properties = properties;
281     }
282
283     /**
284      * Set the network proxy ID to use for this connector.
285      *
286      * @param proxyId
287      */
288     public void setProxyId( String proxyId )
289     {
290         this.proxyId = proxyId;
291     }
292
293     /**
294      * Set the Repository Source for this connector.
295      *
296      * @param sourceRepoId
297      */
298     public void setSourceRepoId( String sourceRepoId )
299     {
300         this.sourceRepoId = sourceRepoId;
301     }
302
303     /**
304      * Set the Repository Target for this connector.
305      *
306      * @param targetRepoId
307      */
308     public void setTargetRepoId( String targetRepoId )
309     {
310         this.targetRepoId = targetRepoId;
311     }
312
313     /**
314      * Set
315      * The list of whitelisted patterns for this
316      * connector.
317      *
318      * @param whiteListPatterns
319      */
320     public void setWhiteListPatterns( List<String> whiteListPatterns )
321     {
322         this.whiteListPatterns = whiteListPatterns;
323     }
324
325
326     /**
327      * Obtain a specific policy from the underlying connector.
328      *
329      * @param policyId     the policy id to fetch.
330      * @param defaultValue the default value for the policy id.
331      * @return the configured policy value (or default value if not found).
332      */
333     public String getPolicy( String policyId, String defaultValue )
334     {
335         if ( this.getPolicies() == null )
336         {
337             return null;
338         }
339
340         String value = this.getPolicies().get( policyId );
341
342         if ( value == null )
343         {
344             return defaultValue;
345         }
346
347         return value;
348     }
349
350     @Override
351     public boolean equals( Object o )
352     {
353         if ( this == o )
354         {
355             return true;
356         }
357         if ( o == null || getClass() != o.getClass() )
358         {
359             return false;
360         }
361
362         AbstractRepositoryConnector that = (AbstractRepositoryConnector) o;
363
364         if ( sourceRepoId != null ? !sourceRepoId.equals( that.sourceRepoId ) : that.sourceRepoId != null )
365         {
366             return false;
367         }
368         if ( targetRepoId != null ? !targetRepoId.equals( that.targetRepoId ) : that.targetRepoId != null )
369         {
370             return false;
371         }
372
373         return true;
374     }
375
376     @Override
377     public int hashCode()
378     {
379         int result = sourceRepoId != null ? sourceRepoId.hashCode() : 0;
380         result = 31 * result + ( targetRepoId != null ? targetRepoId.hashCode() : 0 );
381         return result;
382     }
383
384     @Override
385     public String toString()
386     {
387         final StringBuilder sb = new StringBuilder();
388         sb.append( "AbstractRepositoryConnector" );
389         sb.append( "{sourceRepoId='" ).append( sourceRepoId ).append( '\'' );
390         sb.append( ", targetRepoId='" ).append( targetRepoId ).append( '\'' );
391         sb.append( ", proxyId='" ).append( proxyId ).append( '\'' );
392         sb.append( ", blackListPatterns=" ).append( blackListPatterns );
393         sb.append( ", whiteListPatterns=" ).append( whiteListPatterns );
394         sb.append( ", policies=" ).append( policies );
395         sb.append( ", properties=" ).append( properties );
396         sb.append( ", disabled=" ).append( disabled );
397         sb.append( '}' );
398         return sb.toString();
399     }
400 }
401