1 package org.apache.maven.artifact;
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.util.HashMap;
23 import java.util.Map;
24
25 /**
26 * Type safe enumeration for the artifact status field.
27 *
28 * @author <a href="mailto:brett@apache.org">Brett Porter</a>
29 * @version $Id: ArtifactStatus.java 640549 2008-03-24 20:05:11Z bentmann $
30 */
31 public final class ArtifactStatus
32 implements Comparable
33 {
34 /**
35 * No trust - no information about status.
36 */
37 public static final ArtifactStatus NONE = new ArtifactStatus( "none", 0 );
38
39 /**
40 * No trust - information was generated with defaults.
41 */
42 public static final ArtifactStatus GENERATED = new ArtifactStatus( "generated", 1 );
43
44 /**
45 * Low trust - was converted from the Maven 1.x repository.
46 */
47 public static final ArtifactStatus CONVERTED = new ArtifactStatus( "converted", 2 );
48
49 /**
50 * Moderate trust - it was deployed directly from a partner.
51 */
52 public static final ArtifactStatus PARTNER = new ArtifactStatus( "partner", 3 );
53
54 /**
55 * Moderate trust - it was deployed directly by a user.
56 */
57 public static final ArtifactStatus DEPLOYED = new ArtifactStatus( "deployed", 4 );
58
59 /**
60 * Trusted, as it has had its data verified by hand.
61 */
62 public static final ArtifactStatus VERIFIED = new ArtifactStatus( "verified", 5 );
63
64 private final int rank;
65
66 private final String key;
67
68 private static Map map;
69
70 private ArtifactStatus( String key, int rank )
71 {
72 this.rank = rank;
73 this.key = key;
74
75 if ( map == null )
76 {
77 map = new HashMap();
78 }
79 map.put( key, this );
80 }
81
82 public static ArtifactStatus valueOf( String status )
83 {
84 ArtifactStatus retVal = null;
85
86 if ( status != null )
87 {
88 retVal = (ArtifactStatus) map.get( status );
89 }
90
91 return retVal != null ? retVal : NONE;
92 }
93
94 public boolean equals( Object o )
95 {
96 if ( this == o )
97 {
98 return true;
99 }
100 if ( o == null || getClass() != o.getClass() )
101 {
102 return false;
103 }
104
105 final ArtifactStatus that = (ArtifactStatus) o;
106
107 return rank == that.rank;
108
109 }
110
111 public int hashCode()
112 {
113 return rank;
114 }
115
116 public String toString()
117 {
118 return key;
119 }
120
121 public int compareTo( Object o )
122 {
123 ArtifactStatus s = (ArtifactStatus) o;
124 return rank - s.rank;
125 }
126 }