001    package org.apache.maven.artifact.handler;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *  http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import org.codehaus.plexus.component.annotations.Component;
023    
024    /**
025     * @author <a href="mailto:brett@apache.org">Brett Porter</a>
026     * @author Jason van Zyl
027     */
028    @Component( role = ArtifactHandler.class )
029    public class DefaultArtifactHandler
030        implements ArtifactHandler
031    {
032        private String extension;
033    
034        private String type;
035    
036        private String classifier;
037    
038        private String directory;
039    
040        private String packaging;
041    
042        private boolean includesDependencies;
043    
044        private String language;
045    
046        private boolean addedToClasspath;
047    
048        public DefaultArtifactHandler()
049        {
050        }
051    
052        public DefaultArtifactHandler( String type )
053        {
054            this.type = type;
055        }
056    
057        public String getExtension()
058        {
059            if ( extension == null )
060            {
061                extension = type;
062            }
063            return extension;
064        }
065    
066        public void setExtension( String extension )
067        {
068            this.extension = extension;
069        }
070    
071        public String getType()
072        {
073            return type;
074        }
075    
076        public String getClassifier()
077        {
078            return classifier;
079        }
080    
081        public String getDirectory()
082        {
083            if ( directory == null )
084            {
085                directory = getPackaging() + "s";
086            }
087            return directory;
088        }
089    
090        public String getPackaging()
091        {
092            if ( packaging == null )
093            {
094                packaging = type;
095            }
096            return packaging;
097        }
098    
099        public boolean isIncludesDependencies()
100        {
101            return includesDependencies;
102        }
103    
104        public void setIncludesDependencies( boolean includesDependencies )
105        {
106            this.includesDependencies = includesDependencies;
107        }
108    
109        public String getLanguage()
110        {
111            if ( language == null )
112            {
113                language = "none";
114            }
115    
116            return language;
117        }
118    
119        public void setLanguage( String language )
120        {
121            this.language = language;
122        }
123    
124        public boolean isAddedToClasspath()
125        {
126            return addedToClasspath;
127        }
128    
129        public void setAddedToClasspath( boolean addedToClasspath )
130        {
131            this.addedToClasspath = addedToClasspath;
132        }
133    
134    }