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 package org.microemu.app.util;
28
29 import java.net.MalformedURLException;
30 import java.net.URL;
31 import java.util.StringTokenizer;
32 import java.util.Vector;
33
34 import nanoxml.XMLElement;
35
36 import org.microemu.log.Logger;
37
38
39
40
41
42 public class MidletURLReference implements XMLItem {
43
44
45 private String name;
46
47 private String url;
48
49 public MidletURLReference() {
50 super();
51 }
52
53
54
55
56
57 public MidletURLReference(String name, String url) {
58 super();
59 this.name = name;
60 this.url = url;
61 }
62
63 public boolean equals(Object obj) {
64 if (!(obj instanceof MidletURLReference)) {
65 return false;
66 }
67 return ((MidletURLReference)obj).url.equals(url);
68 }
69
70 public String toString() {
71
72 URL u;
73 try {
74 u = new URL(url);
75 } catch (MalformedURLException e) {
76 Logger.error(e);
77 return url;
78 }
79 StringBuffer b = new StringBuffer();
80
81 String scheme = u.getProtocol();
82 if (scheme.equals("file") || scheme.startsWith("http")) {
83 b.append(scheme).append("://");
84 if (u.getHost() != null) {
85 b.append(u.getHost());
86 }
87 Vector pathComponents = new Vector();
88 final String pathSeparator = "/";
89 StringTokenizer st = new StringTokenizer(u.getPath(), pathSeparator);
90 while (st.hasMoreTokens()) {
91 pathComponents.add(st.nextToken());
92 }
93 if (pathComponents.size() > 3) {
94 b.append(pathSeparator);
95 b.append(pathComponents.get(0));
96 b.append(pathSeparator).append("...").append(pathSeparator);
97 b.append(pathComponents.get(pathComponents.size()-2));
98 b.append(pathSeparator);
99 b.append(pathComponents.get(pathComponents.size()-1));
100 } else {
101 b.append(u.getPath());
102 }
103
104 } else {
105 b.append(url);
106 }
107 if (name != null) {
108 b.append(" - ");
109 b.append(name);
110 }
111 return b.toString();
112 }
113
114 public void read(XMLElement xml) {
115 name = xml.getChildString("name", "");
116 url = xml.getChildString("url", "");
117 }
118
119 public void save(XMLElement xml) {
120 xml.removeChildren();
121 xml.addChild("name", name);
122 xml.addChild("url", url);
123 }
124
125 public String getName() {
126 return this.name;
127 }
128
129 public String getUrl() {
130 return this.url;
131 }
132
133 }