1 package org.apache.archiva.policies;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.common.ArchivaException;
23
24 import java.util.Collections;
25 import java.util.Map;
26
27
28
29
30 public class ProxyDownloadException
31 extends ArchivaException
32 {
33
34
35
36 private final Map<String, Exception> failures;
37
38 public ProxyDownloadException( String message, String repositoryId, Exception cause )
39 {
40 super( constructMessage( message, Collections.singletonMap( repositoryId, cause ) ), cause );
41
42 failures = Collections.singletonMap( repositoryId, cause );
43 }
44
45 public ProxyDownloadException( String message, Map<String, Exception> failures )
46 {
47 super( constructMessage( message, failures ) );
48
49 this.failures = failures;
50 }
51
52 private static String constructMessage( String message, Map<String, Exception> failures )
53 {
54 StringBuilder msg = new StringBuilder( message );
55 msg.append( ":" );
56 for ( Map.Entry<String, Exception> entry : failures.entrySet() )
57 {
58 msg.append( "\n\t" ).append( entry.getKey() ).append( ": " ).append( entry.getValue().getMessage() );
59 }
60 return msg.toString();
61 }
62
63 public Map<String, Exception> getFailures()
64 {
65 return failures;
66 }
67 }