KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > Jt > JtURL


1
2
3 package Jt;
4 import java.util.*;
5 import java.net.*;
6 import java.io.*;
7
8
9 /**
10   * Class used to handle URLs.
11   * @author Freedom Software Inc.
12   */

13
14 public class JtURL extends JtObject {
15   private String JavaDoc url;
16   InputStream stream;
17   BufferedInputStream bstream;
18   private URL someurl;
19
20   public JtURL() {
21   }
22
23 /**
24   * Specifies the URL.
25   * @param newUrl url
26   */

27
28   public void setUrl(String JavaDoc newUrl) {
29     url = newUrl;
30   }
31
32
33 /**
34   * Returns the URL.
35   */

36   public String JavaDoc getUrl() {
37     return url;
38   }
39
40
41   String JavaDoc download () {
42   int available;
43   String JavaDoc line;
44   BufferedReader d = null;
45   URLConnection connection;
46   StringBuffer JavaDoc result = new StringBuffer JavaDoc();
47  
48        if (url == null)
49           return (null);
50  
51        try {
52           someurl = new URL (url);
53           connection = someurl.openConnection ();
54           connection.connect ();
55
56           //stream = someurl.openStream ();
57
stream = connection.getInputStream ();
58
59           d = new BufferedReader (new InputStreamReader (stream));
60
61       while ((line = d.readLine ()) != null) {
62             //System.out.println (line);
63
result.append (line + "\n");
64           }
65
66           //System.out.println (result);
67

68       // close streams
69
if (stream != null)
70         stream.close ();
71       if (d != null)
72         d.close ();
73           return (result.toString ());
74         } catch (Exception JavaDoc ex) {
75           handleException (ex);
76           return (null);
77         }
78      }
79
80   /**
81     * Process object messages.
82     * <ul>
83     * <li> JtDOWNLOAD - Download the URL and returns its content.
84     * </ul>
85     * @param message Jt Message
86     */

87
88   public Object JavaDoc processMessage (Object JavaDoc message) {
89
90    String JavaDoc msgid = null;
91    byte buffer[];
92    File file;
93    JtMessage e = (JtMessage) message;
94
95      if (e == null)
96     return null;
97
98      msgid = (String JavaDoc) e.getMsgId ();
99
100      if (msgid == null)
101     return null;
102
103
104      // Remove this object
105
if (msgid.equals ("JtREMOVE")) {
106        return (null);
107      }
108
109      if (msgid.equals ("JtDOWNLOAD")) {
110        return (download ());
111      }
112      handleError ("JtURL.processMessage: invalid message id:" + msgid);
113      return (null);
114   }
115
116
117   /**
118     * Unit Tests the messages processed by JtURL. Usage: java Jt.JtURL url
119     */

120
121      public static void main (String JavaDoc args[]) {
122         JtObject main = new JtObject ();
123         JtMessage msg;
124
125         if (args.length < 1) {
126        System.err.println ("Usage: java Jt.JtURL url");
127        System.exit (1);
128     }
129
130         main.createObject ("Jt.JtURL", "url");
131         main.setValue ("url", "url", args[0]);
132
133         System.err.println ("downloading "+ args[0] + " .....");
134         msg = new JtMessage ("JtDOWNLOAD");
135
136         System.err.println (main.sendMessage ("url", msg));
137         main.removeObject ("url");
138     
139      }
140 }
Popular Tags