1 /*
2  *  Licensed to the Apache Software Foundation (ASF) under one or more
3  *  contributor license agreements.  See the NOTICE file distributed with
4  *  this work for additional information regarding copyright ownership.
5  *  The ASF licenses this file to You under the Apache License, Version 2.0
6  *  (the "License"); you may not use this file except in compliance with
7  *  the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  */
17 
18 package libcore.net.url;
19 
20 import java.io.IOException;
21 import java.net.Proxy;
22 import java.net.URL;
23 import java.net.URLConnection;
24 import java.net.URLStreamHandler;
25 
26 public class FtpHandler extends URLStreamHandler {
27     /**
28      * Open a URLConnection on the given URL.
29      */
30     @Override
openConnection(URL u)31     protected URLConnection openConnection(URL u) throws IOException {
32         return new FtpURLConnection(u);
33     }
34 
35     /**
36      * Returns a connection, which is established via the <code>proxy</code>,
37      * to the FTP server specified by this <code>URL</code>. If
38      * <code>proxy</code> is DIRECT type, the connection is made in normal
39      * way.
40      *
41      * @param url
42      *            the URL which the connection is pointing to
43      * @param proxy
44      *            the proxy which is used to make the connection
45      * @return a connection to the resource pointed by this url.
46      *
47      * @throws IOException
48      *             if this handler fails to establish a connection.
49      * @throws IllegalArgumentException
50      *             if any argument is null or the type of proxy is wrong.
51      * @throws UnsupportedOperationException
52      *             if the protocol handler doesn't support this method.
53      */
54     @Override
openConnection(URL url, Proxy proxy)55     protected URLConnection openConnection(URL url, Proxy proxy) throws IOException {
56         if (url == null || proxy == null) {
57             throw new IllegalArgumentException("url == null || proxy == null");
58         }
59         return new FtpURLConnection(url, proxy);
60     }
61 
62     /**
63      * Return the default port.
64      */
65     @Override
getDefaultPort()66     protected int getDefaultPort() {
67         return 21;
68     }
69 }
70