KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > maven > artifact > repository > layout > DefaultRepositoryLayout


1 package org.apache.maven.artifact.repository.layout;
2
3 /*
4  * Copyright 2001-2005 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18
19 import org.apache.maven.artifact.Artifact;
20 import org.apache.maven.artifact.handler.ArtifactHandler;
21 import org.apache.maven.artifact.metadata.ArtifactMetadata;
22 import org.apache.maven.artifact.repository.ArtifactRepository;
23
24 /**
25  * @author jdcasey
26  */

27 public class DefaultRepositoryLayout
28     implements ArtifactRepositoryLayout
29 {
30     private static final char PATH_SEPARATOR = '/';
31
32     private static final char GROUP_SEPARATOR = '.';
33
34     private static final char ARTIFACT_SEPARATOR = '-';
35
36     public String JavaDoc pathOf( Artifact artifact )
37     {
38         ArtifactHandler artifactHandler = artifact.getArtifactHandler();
39
40         StringBuffer JavaDoc path = new StringBuffer JavaDoc();
41
42         path.append( formatAsDirectory( artifact.getGroupId() ) ).append( PATH_SEPARATOR );
43         path.append( artifact.getArtifactId() ).append( PATH_SEPARATOR );
44         path.append( artifact.getBaseVersion() ).append( PATH_SEPARATOR );
45         path.append( artifact.getArtifactId() ).append( ARTIFACT_SEPARATOR ).append( artifact.getVersion() );
46
47         if ( artifact.hasClassifier() )
48         {
49             path.append( ARTIFACT_SEPARATOR ).append( artifact.getClassifier() );
50         }
51
52         if ( artifactHandler.getExtension() != null && artifactHandler.getExtension().length() > 0 )
53         {
54             path.append( GROUP_SEPARATOR ).append( artifactHandler.getExtension() );
55         }
56
57         return path.toString();
58     }
59
60     public String JavaDoc pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
61     {
62         return pathOfRepositoryMetadata( metadata, metadata.getLocalFilename( repository ) );
63     }
64
65     private String JavaDoc pathOfRepositoryMetadata( ArtifactMetadata metadata, String JavaDoc filename )
66     {
67         StringBuffer JavaDoc path = new StringBuffer JavaDoc();
68
69         path.append( formatAsDirectory( metadata.getGroupId() ) ).append( PATH_SEPARATOR );
70         if ( !metadata.storedInGroupDirectory() )
71         {
72             path.append( metadata.getArtifactId() ).append( PATH_SEPARATOR );
73
74             if ( metadata.storedInArtifactVersionDirectory() )
75             {
76                 path.append( metadata.getBaseVersion() ).append( PATH_SEPARATOR );
77             }
78         }
79
80         path.append( filename );
81
82         return path.toString();
83     }
84
85     public String JavaDoc pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata )
86     {
87         return pathOfRepositoryMetadata( metadata, metadata.getRemoteFilename() );
88     }
89
90     private String JavaDoc formatAsDirectory( String JavaDoc directory )
91     {
92         return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
93     }
94
95 }
96
Popular Tags