]> source.dussan.org Git - archiva.git/blob
6d506308da67f544438ea5f6139e2aabcae98f3e
[archiva.git] /
1 package org.apache.maven.archiva.policies;
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 import java.io.File;
23 import java.util.List;
24 import java.util.Properties;
25
26 /**
27  * DownloadPolicy 
28  *
29  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
30  * @version $Id$
31  */
32 public interface DownloadPolicy
33 {
34     /**
35      * Get the list of options for this policy.
36      * 
37      * @return the list of options for this policy.
38      */
39     public List<String> getOptions();
40
41     /**
42      * Get the default option for this policy.
43      * 
44      * @return the default policy for this policy.
45      */
46     public String getDefaultOption();
47
48     /**
49      * Get the id for this policy.
50      * 
51      * @return the id for this policy.
52      */
53     public String getId();
54
55     /**
56      * Apply the download policy.
57      * 
58      * @param policySetting the policy setting.
59      * @param request the list of request properties that the policy might use.
60      * @param localFile
61      * 
62      * @throws PolicyViolationException if the policy has been violated.
63      */
64     public void applyPolicy( String policySetting, Properties request, File localFile )
65         throws PolicyViolationException, PolicyConfigurationException;
66 }