]> source.dussan.org Git - archiva.git/blob
fb42b0b8df8a7d719a332c55f0eb1262f69ee326
[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 import java.io.Serializable;
26
27
28 /**
29  * @author Olivier Lamy
30  */
31 @Entity
32 //@Table( name = "namespace", schema = "ArchivaKeySpace@archiva")
33 public class Namespace
34     implements Serializable
35 {
36
37     private static final long serialVersionUID = 1L;
38
39     @Id
40     @Column(name = "id")
41     private String id;
42
43     @Column(name = "name")
44     private String name;
45
46     @Column(name = "repository")
47     private Repository repository;
48
49     //@ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
50     //@JoinColumn(name = "repository_id")
51     //private transient Repository repository;
52
53
54     public Namespace()
55     {
56         // no op
57     }
58
59
60     public Namespace( String id, Repository repository )
61     {
62         this.id = new KeyBuilder().withNamespace( id ).withRepositoryId( repository.getId() ).build();
63         this.name = id;
64         this.repository = repository;
65     }
66
67     public String getId()
68     {
69         return id;
70     }
71
72     public void setId( String id )
73     {
74         this.id = id;
75     }
76
77     public String getName()
78     {
79         return name;
80     }
81
82     public void setName( String name )
83     {
84         this.name = name;
85     }
86
87     public Repository getRepository()
88     {
89         return repository;
90     }
91
92     public void setRepository( Repository repository )
93     {
94         this.repository = repository;
95     }
96
97     /*
98     public String getRepositoryId()
99     {
100         return repositoryId;
101     }
102
103     public void setRepositoryId( String repositoryId )
104     {
105         this.repositoryId = repositoryId;
106     }*/
107
108     @Override
109     public boolean equals( Object o )
110     {
111         if ( this == o )
112         {
113             return true;
114         }
115         if ( o == null || getClass() != o.getClass() )
116         {
117             return false;
118         }
119
120         Namespace namespace = (Namespace) o;
121
122         if ( !id.equals( namespace.id ) )
123         {
124             return false;
125         }
126         if ( !repository.getId().equals( namespace.repository.getId() ) )
127         {
128             return false;
129         }
130
131         return true;
132     }
133
134     @Override
135     public int hashCode()
136     {
137         int result = id.hashCode();
138         result = 31 * result + repository.getId().hashCode();
139         return result;
140     }
141
142     @Override
143     public String toString()
144     {
145         final StringBuilder sb = new StringBuilder( "Namespace{" );
146         sb.append( "id='" ).append( id ).append( '\'' );
147         sb.append( ", name='" ).append( name ).append( '\'' );
148         sb.append( ", repository='" ).append( repository ).append( '\'' );
149         sb.append( '}' );
150         return sb.toString();
151     }
152
153     public static class KeyBuilder
154     {
155
156         private String namespace;
157
158         private String repositoryId;
159
160         public KeyBuilder()
161         {
162
163         }
164
165         public KeyBuilder withNamespace( Namespace namespace )
166         {
167             this.namespace = namespace.getName();
168             this.repositoryId = namespace.getRepository().getId();
169             return this;
170         }
171
172         public KeyBuilder withNamespace( String namespace )
173         {
174             this.namespace = namespace;
175             return this;
176         }
177
178         public KeyBuilder withRepositoryId( String repositoryId )
179         {
180             this.repositoryId = repositoryId;
181             return this;
182         }
183
184         public String build()
185         {
186             // FIXME add some controls
187             return this.repositoryId + "-" + this.namespace;
188         }
189     }
190 }