1c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson/*
2c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * Copyright (C) 2011 The Android Open Source Project
3c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson *
4c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * Licensed under the Apache License, Version 2.0 (the "License");
5c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * you may not use this file except in compliance with the License.
6c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * You may obtain a copy of the License at
7c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson *
8c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson *      http://www.apache.org/licenses/LICENSE-2.0
9c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson *
10c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * Unless required by applicable law or agreed to in writing, software
11c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
12c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * See the License for the specific language governing permissions and
14c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * limitations under the License.
15c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson */
16c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson
17c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilsonpackage libcore.java.net.customstreamhandler.http;
18c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson
19c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilsonimport java.io.IOException;
20c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilsonimport java.net.URL;
21c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilsonimport java.net.URLConnection;
22c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilsonimport java.net.URLStreamHandler;
23c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson
24c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson/**
25c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * This specially-named class is created reflectively by {@link URL}. For the
26c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * test to be effective, its name must be "Handler" and parent package name must
27c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson * be "http".
28c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson */
29c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilsonpublic final class Handler extends URLStreamHandler {
30c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson    @Override protected URLConnection openConnection(URL url) throws IOException {
31c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson        return new HandlerURLConnection(url);
32c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson    }
33c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson
34c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson    public static class HandlerURLConnection extends URLConnection {
35c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson        protected HandlerURLConnection(URL url) {
36c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson            super(url);
37c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson        }
38c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson
39c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson        @Override public void connect() throws IOException {
40c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson        }
41c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson    }
42c2ebff3511f9df4d8cca2b82630c2d760af9d204Jesse Wilson}
43