]> source.dussan.org Git - archiva.git/blob
34c10ece62dbd4f3d75979aa428b006e3afd8c7a
[archiva.git] /
1 package org.apache.archiva.repository.content.base;
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 org.apache.archiva.repository.content.ItemSelector;
23
24 import java.util.Collections;
25 import java.util.HashMap;
26 import java.util.Map;
27
28 /**
29  * Item selector for querying artifacts and other content items.
30  */
31 public class ArchivaItemSelector implements ItemSelector
32 {
33
34     private String projectId = null;
35     private String version = null;
36     private String artifactVersion = null;
37     private String artifactId = null;
38     private String namespace = "";
39     private String type = null;
40     private String classifier = null;
41     private Map<String,String> attributes;
42
43
44     private ArchivaItemSelector() {
45
46     }
47
48     public static Builder builder() {
49         return new Builder();
50     }
51
52     public static class Builder
53     {
54         private final ArchivaItemSelector selector = new ArchivaItemSelector( );
55
56         public Builder withNamespace( String namespace )
57         {
58             selector.namespace = namespace;
59             return this;
60         }
61
62
63         public Builder withProjectId( String projectId )
64         {
65             selector.projectId = projectId;
66             return this;
67         }
68
69
70         public Builder withVersion( String version )
71         {
72             selector.version = version;
73             return this;
74         }
75
76
77         public Builder withArtifactVersion( String artifactVersion )
78         {
79             selector.artifactVersion = artifactVersion;
80             return this;
81         }
82
83
84         public Builder withArtifactId( String artifactId )
85         {
86             selector.artifactId = artifactId;
87             return this;
88         }
89
90
91         public Builder withType( String type )
92         {
93             selector.type = type;
94             return this;
95         }
96
97
98         public Builder withClassifier( String classifier )
99         {
100             selector.classifier = classifier;
101             return this;
102         }
103
104
105         public Builder withAttribute( String key, String value )
106         {
107             selector.setAttribute( key, value );
108             return this;
109         }
110
111         public ArchivaItemSelector build() {
112             return selector;
113         }
114     }
115
116     private void setAttribute(String key, String value) {
117         if (this.attributes == null) {
118             this.attributes = new HashMap<>( );
119         }
120         this.attributes.put( key, value );
121     }
122
123     @Override
124     public String getProjectId( )
125     {
126         return projectId;
127     }
128
129     @Override
130     public String getNamespace( )
131     {
132         return namespace;
133     }
134
135     @Override
136     public String getVersion( )
137     {
138         return version;
139     }
140
141     @Override
142     public String getArtifactVersion( )
143     {
144         return artifactVersion;
145     }
146
147     @Override
148     public String getArtifactId( )
149     {
150         return artifactId;
151     }
152
153     @Override
154     public String getType( )
155     {
156         return type;
157     }
158
159     @Override
160     public String getClassifier( )
161     {
162         return classifier;
163     }
164
165     @Override
166     public String getAttribute( String key )
167     {
168         if ( this.attributes == null || !this.attributes.containsKey( key ) )
169         {
170
171             return "";
172         }
173         else
174         {
175             return this.attributes.get( key );
176         }
177     }
178
179     @Override
180     public Map<String, String> getAttributes( )
181     {
182         if (this.attributes==null) {
183             return Collections.emptyMap( );
184         } else {
185             return Collections.unmodifiableMap( this.attributes );
186         }
187     }
188
189     @Override
190     public boolean hasAttributes( )
191     {
192         return attributes!=null && attributes.size()>0;
193     }
194 }