]> source.dussan.org Git - archiva.git/blob
ce699d0b3fcbe6b8d24fabb3bddb9e77bf2bef32
[archiva.git] /
1 package org.apache.archiva.rest.api.model;
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 org.apache.archiva.metadata.model.ArtifactMetadata;
22
23 import javax.xml.bind.annotation.XmlRootElement;
24 import java.io.Serializable;
25 import java.text.DecimalFormat;
26 import java.text.DecimalFormatSymbols;
27 import java.util.Locale;
28
29 /**
30  * @author Olivier Lamy
31  * @since 1.4-M3
32  */
33 @XmlRootElement( name = "artifactDownloadInfo" )
34 public class ArtifactDownloadInfo
35     implements Serializable
36 {
37     private String type;
38
39     private String namespace;
40
41     private String project;
42
43     private String size;
44
45     private String id;
46
47     private String repositoryId;
48
49     private String version;
50
51     private String path;
52
53     private String classifier;
54
55     public ArtifactDownloadInfo( ArtifactMetadata artifact, String path, String type, String classifier )
56     {
57         this.repositoryId = artifact.getRepositoryId();
58         this.path = path.substring( 0, path.lastIndexOf( "/" ) + 1 ) + artifact.getId();
59
60         this.type = type;
61         this.classifier = classifier;
62
63         this.namespace = artifact.getNamespace();
64         this.project = artifact.getProject();
65
66         // TODO: find a reusable formatter for this
67         double s = artifact.getSize();
68         String symbol = "b";
69         if ( s > 1024 )
70         {
71             symbol = "K";
72             s /= 1024;
73
74             if ( s > 1024 )
75             {
76                 symbol = "M";
77                 s /= 1024;
78
79                 if ( s > 1024 )
80                 {
81                     symbol = "G";
82                     s /= 1024;
83                 }
84             }
85         }
86
87         DecimalFormat df = new DecimalFormat( "#,###.##", new DecimalFormatSymbols( Locale.US ) );
88         this.size = df.format( s ) + " " + symbol;
89         this.id = artifact.getId();
90         this.version = artifact.getVersion();
91     }
92
93     public String getType()
94     {
95         return type;
96     }
97
98     public void setType( String type )
99     {
100         this.type = type;
101     }
102
103     public String getNamespace()
104     {
105         return namespace;
106     }
107
108     public void setNamespace( String namespace )
109     {
110         this.namespace = namespace;
111     }
112
113     public String getProject()
114     {
115         return project;
116     }
117
118     public void setProject( String project )
119     {
120         this.project = project;
121     }
122
123     public String getSize()
124     {
125         return size;
126     }
127
128     public void setSize( String size )
129     {
130         this.size = size;
131     }
132
133     public String getId()
134     {
135         return id;
136     }
137
138     public void setId( String id )
139     {
140         this.id = id;
141     }
142
143     public String getRepositoryId()
144     {
145         return repositoryId;
146     }
147
148     public void setRepositoryId( String repositoryId )
149     {
150         this.repositoryId = repositoryId;
151     }
152
153     public String getVersion()
154     {
155         return version;
156     }
157
158     public void setVersion( String version )
159     {
160         this.version = version;
161     }
162
163     public String getPath()
164     {
165         return path;
166     }
167
168     public void setPath( String path )
169     {
170         this.path = path;
171     }
172
173     public String getClassifier()
174     {
175         return classifier;
176     }
177
178     public void setClassifier( String classifier )
179     {
180         this.classifier = classifier;
181     }
182
183     @Override
184     public String toString()
185     {
186         final StringBuilder sb = new StringBuilder();
187         sb.append( "ArtifactDownloadInfo" );
188         sb.append( "{type='" ).append( type ).append( '\'' );
189         sb.append( ", namespace='" ).append( namespace ).append( '\'' );
190         sb.append( ", project='" ).append( project ).append( '\'' );
191         sb.append( ", size='" ).append( size ).append( '\'' );
192         sb.append( ", id='" ).append( id ).append( '\'' );
193         sb.append( ", repositoryId='" ).append( repositoryId ).append( '\'' );
194         sb.append( ", version='" ).append( version ).append( '\'' );
195         sb.append( ", path='" ).append( path ).append( '\'' );
196         sb.append( ", classifier='" ).append( classifier ).append( '\'' );
197         sb.append( '}' );
198         return sb.toString();
199     }
200 }