KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > avalon > repository > ArtifactURLConnection


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

17
18 package org.apache.avalon.repository ;
19
20 import java.io.IOException JavaDoc;
21 import java.net.URL JavaDoc;
22
23 /**
24  * Repository URL protocol handler.
25  */

26 public class ArtifactURLConnection extends AbstractURLConnection
27 {
28     /**
29      * Creation of a new handler.
30      * @param url the url to establish a connection with
31      * @param type the default type if no type specified
32      * @exception NullPointerException if the supplied repository argument is null
33      */

34      ArtifactURLConnection( URL JavaDoc url )
35        throws NullPointerException JavaDoc, IOException JavaDoc
36      {
37          super( url );
38      }
39
40     /**
41      * Return the Artifact specified by this URL.
42      * @return the artifact instance
43      */

44      public Object JavaDoc getContent() throws IOException JavaDoc
45      {
46          return getContent( "jar" );
47      }
48
49     /**
50      * Return the Artifact specified by this URL.
51      * @return the artifact instance
52      */

53      protected Object JavaDoc getContent( String JavaDoc defaultType ) throws IOException JavaDoc
54      {
55          try
56          {
57              final String JavaDoc path = getURL().getPath();
58              final int i = path.lastIndexOf( "/" );
59              final String JavaDoc group = path.substring( 0, i );
60              final String JavaDoc name = path.substring( i+1 );
61              final String JavaDoc version = getVersion( url );
62              final String JavaDoc type = getType( getURL(), defaultType );
63              return Artifact.createArtifact( group, name, version, type );
64          }
65          catch( Throwable JavaDoc e )
66          {
67              final String JavaDoc error =
68                "Unexpected exception while resolving url [" + getURL() + "].";
69              throw new CascadingIOException( error );
70          }
71      }
72
73      private String JavaDoc getType( URL JavaDoc url, String JavaDoc type )
74      {
75          return getQueryField( url, "type", type );
76      }
77
78
79
80 }
81
Popular Tags