]> source.dussan.org Git - archiva.git/blob
545787fbac49fd9e25558cc813a6d33774d60318
[archiva.git] /
1 package org.apache.archiva.metadata.repository.cassandra.model;
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 javax.persistence.Column;
23 import javax.persistence.Entity;
24 import javax.persistence.Id;
25
26 /**
27  * Cassandra storage model for {@link org.apache.archiva.metadata.model.MetadataFacet}
28  *
29  * @author Olivier Lamy
30  */
31 @Entity
32 public class MetadataFacetModel
33 {
34     // id is repositoryId + namespaceId + projectId + facetId + name + mapKey
35     @Id
36     @Column( name = "id" )
37     private String id;
38
39     @Column( name = "artifactMetadataModel" )
40     private ArtifactMetadataModel artifactMetadataModel;
41
42     @Column( name = "facetId" )
43     private String facetId;
44
45     @Column( name = "name" )
46     private String name;
47
48     @Column( name = "key" )
49     private String key;
50
51     @Column( name = "value" )
52     private String value;
53
54     public MetadataFacetModel()
55     {
56         // no op
57     }
58
59     public MetadataFacetModel( String id, ArtifactMetadataModel artifactMetadataModel, String facetId, String key,
60                                String value, String name )
61     {
62         this.id = id;
63         this.artifactMetadataModel = artifactMetadataModel;
64         this.key = key;
65         this.value = value;
66         this.name = name;
67         this.facetId = facetId;
68     }
69
70     public String getFacetId()
71     {
72         return facetId;
73     }
74
75     public void setFacetId( String facetId )
76     {
77         this.facetId = facetId;
78     }
79
80     public String getId()
81     {
82         return id;
83     }
84
85     public void setId( String id )
86     {
87         this.id = id;
88     }
89
90     public ArtifactMetadataModel getArtifactMetadataModel()
91     {
92         return artifactMetadataModel;
93     }
94
95     public void setArtifactMetadataModel( ArtifactMetadataModel artifactMetadataModel )
96     {
97         this.artifactMetadataModel = artifactMetadataModel;
98     }
99
100     public String getName()
101     {
102         return name;
103     }
104
105     public void setName( String name )
106     {
107         this.name = name;
108     }
109
110     public String getKey()
111     {
112         return key;
113     }
114
115     public void setKey( String key )
116     {
117         this.key = key;
118     }
119
120     public String getValue()
121     {
122         return value;
123     }
124
125     public void setValue( String value )
126     {
127         this.value = value;
128     }
129
130     @Override
131     public boolean equals( Object o )
132     {
133         if ( this == o )
134         {
135             return true;
136         }
137         if ( o == null || getClass() != o.getClass() )
138         {
139             return false;
140         }
141
142         MetadataFacetModel that = (MetadataFacetModel) o;
143
144         if ( !id.equals( that.id ) )
145         {
146             return false;
147         }
148
149         return true;
150     }
151
152     @Override
153     public int hashCode()
154     {
155         return id.hashCode();
156     }
157
158     @Override
159     public String toString()
160     {
161         final StringBuilder sb = new StringBuilder( "MetadataFacetModel{" );
162         sb.append( "id='" ).append( id ).append( '\'' );
163         sb.append( ", artifactMetadataModel=" ).append( artifactMetadataModel );
164         sb.append( ", key='" ).append( key ).append( '\'' );
165         sb.append( ", value='" ).append( value ).append( '\'' );
166         sb.append( '}' );
167         return sb.toString();
168     }
169
170     public static class KeyBuilder
171     {
172
173         private ArtifactMetadataModel artifactMetadataModel;
174
175         private String key;
176
177         private String name;
178
179         private String facetId;
180
181         private String repositoryId;
182
183         public KeyBuilder()
184         {
185
186         }
187
188         public KeyBuilder withArtifactMetadataModel( ArtifactMetadataModel artifactMetadataModel )
189         {
190             this.artifactMetadataModel = artifactMetadataModel;
191             return this;
192         }
193
194         public KeyBuilder withKey( String key )
195         {
196             this.key = key;
197             return this;
198         }
199
200         public KeyBuilder withName( String name )
201         {
202             this.name = name;
203             return this;
204         }
205
206         public KeyBuilder withFacetId( String facetId )
207         {
208             this.facetId = facetId;
209             return this;
210         }
211
212         public KeyBuilder withRepositoryId( String repositoryId )
213         {
214             this.repositoryId = repositoryId;
215             return this;
216         }
217
218         public String build()
219         {
220             // FIXME add some controls
221             // getArtifactMetadataModelId can have no namespace, no project and no projectid for statistics
222             // only repositoryId with artifactMetadataModel
223             return ( this.artifactMetadataModel == null
224                 ? this.repositoryId
225                 : this.artifactMetadataModel.getArtifactMetadataModelId() ) + "-" + this.facetId + "-" + this.name + "-"
226                 + this.key;
227         }
228     }
229 }