]> source.dussan.org Git - archiva.git/blob
4d2842342d2b0f2b9bad52a74cf28a0eb0ae3fc8
[archiva.git] /
1 package org.apache.archiva.repository;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22
23 import java.time.Duration;
24 import java.util.Collections;
25 import java.util.HashMap;
26 import java.util.Locale;
27 import java.util.Map;
28
29 /**
30  * Abstract implementation of a remote repository. Abstract classes must implement the
31  * features and capabilities by themselves.
32  */
33 public abstract class AbstractRemoteRepository extends AbstractRepository implements EditableRemoteRepository
34 {
35
36     private RepositoryCredentials credentials;
37     private String checkPath;
38     private Map<String,String> extraParameters = new HashMap<>(  );
39     private Map<String,String> uExtraParameters = Collections.unmodifiableMap( extraParameters );
40     private Map<String,String> extraHeaders = new HashMap<>(  );
41     private Map<String,String> uExtraHeaders = Collections.unmodifiableMap( extraHeaders );
42     private Duration timeout;
43     private String proxyId;
44     private RemoteRepositoryContent content;
45
46     public AbstractRemoteRepository( RepositoryType type, String id, String name )
47     {
48         super( type, id, name );
49     }
50
51     public AbstractRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name )
52     {
53         super( primaryLocale, type, id, name );
54     }
55
56     @Override
57     public void setCredentials( RepositoryCredentials credentials )
58     {
59         this.credentials = credentials;
60     }
61
62     @Override
63     public void setCheckPath( String path )
64     {
65         this.checkPath = path;
66     }
67
68     @Override
69     public void setExtraParameters( Map<String, String> params )
70     {
71         this.extraParameters.clear();
72         this.extraParameters.putAll(params);
73     }
74
75     @Override
76     public void addExtraParameter( String key, String value )
77     {
78         this.extraParameters.put(key, value);
79     }
80
81     @Override
82     public void setExtraHeaders( Map<String, String> headers )
83     {
84         this.extraHeaders.clear();
85         this.extraHeaders.putAll(headers);
86     }
87
88     @Override
89     public void addExtraHeader( String header, String value )
90     {
91         this.extraHeaders.put(header, value);
92     }
93
94     @Override
95     public void setTimeout( Duration duration )
96     {
97         this.timeout = duration;
98     }
99
100     @Override
101     public RemoteRepositoryContent getContent( )
102     {
103         return content;
104     }
105
106     @Override
107     public void setContent(RemoteRepositoryContent content) {
108         this.content = content;
109     }
110
111     @Override
112     public RepositoryCredentials getLoginCredentials( )
113     {
114         return credentials;
115     }
116
117     @Override
118     public String getCheckPath( )
119     {
120         return checkPath;
121     }
122
123     @Override
124     public Map<String, String> getExtraParameters( )
125     {
126         return uExtraParameters;
127     }
128
129     @Override
130     public Map<String, String> getExtraHeaders( )
131     {
132         return uExtraHeaders;
133     }
134
135     @Override
136     public Duration getTimeout( )
137     {
138         return timeout;
139     }
140
141 }