]> source.dussan.org Git - archiva.git/blob
3f5bcc83d733f436c30197bb99cb82fc5e1e2b03
[archiva.git] /
1 package org.apache.archiva.metadata.repository.storage.maven2;
2
3 import java.io.File;
4
5 import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
6
7 /*
8  * Licensed to the Apache Software Foundation (ASF) under one
9  * or more contributor license agreements.  See the NOTICE file
10  * distributed with this work for additional information
11  * regarding copyright ownership.  The ASF licenses this file
12  * to you under the Apache License, Version 2.0 (the
13  * "License"); you may not use this file except in compliance
14  * with the License.  You may obtain a copy of the License at
15  *
16  *   http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing,
19  * software distributed under the License is distributed on an
20  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21  * KIND, either express or implied.  See the License for the
22  * specific language governing permissions and limitations
23  * under the License.
24  */
25
26 /**
27  * @plexus.component role="org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator" role-hint="maven2"
28  */
29 public class Maven2RepositoryPathTranslator
30     implements RepositoryPathTranslator
31 {
32     private static final char PATH_SEPARATOR = '/';
33
34     private static final char GROUP_SEPARATOR = '.';
35
36     public File toFile( File basedir, String namespace, String projectId, String projectVersion, String filename )
37     {
38         return new File( basedir, toPath( namespace, projectId, projectVersion, filename ) );
39     }
40
41     public String toPath( String namespace, String projectId, String projectVersion, String filename )
42     {
43         StringBuilder path = new StringBuilder();
44
45         path.append( formatAsDirectory( namespace ) ).append( PATH_SEPARATOR );
46         path.append( projectId ).append( PATH_SEPARATOR );
47         path.append( projectVersion ).append( PATH_SEPARATOR );
48         path.append( filename );
49
50         return path.toString();
51     }
52
53     private String formatAsDirectory( String directory )
54     {
55         return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
56     }
57 }