summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/gcj/util/path/URLPathEntry.java
blob: 68f9200b555bc0449fb6f28c152d8e2233e2ca36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// URLPathEntry.java -- search path element for URL's

/* Copyright (C) 1999  Cygnus Solutions

   This file is part of libgcj.

This software is copyrighted work licensed under the terms of the
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
details.  */

/* Author: Kresten Krab Thorup <krab@gnu.org>  */

package gnu.gcj.util.path;

import java.util.*;
import java.util.zip.*;
import java.io.*;
import java.net.*;

final class URLPathEntry extends PathEntry {
    final URL base;

    URLPathEntry (URL f) {
	base = f;
    }

    public String toString () { return base.toString (); }

    URL getURL (String file) {

	try {
	    URL res = new URL (base, file);
	    InputStream is = res.openStream (); // exc if not found
	    is.close ();
	    return res;
	} catch (java.io.IOException x) {
	    return null;
	}
    }

    InputStream getStream (String file) {

	try {
	    URL res = new URL (base, file);
	    return res.openStream ();
	} catch (java.io.IOException x) {
	    return null;
	}

    }

    byte[] getBytes (String file) {

	try {
	    URL res = new URL (base, file);
	    URLConnection conn = res.openConnection ();
	    int len = conn.getContentLength ();
	    if (len == -1) return null;
	    return readbytes (conn.getInputStream (), len);
	} catch (java.io.IOException x) {
	    return null;
	}

    }

}

OpenPOWER on IntegriCloud