1 8 9 package mx4j.loading; 10 11 import java.net.MalformedURLException ; 12 import java.net.URL ; 13 import java.util.ArrayList ; 14 import java.util.StringTokenizer ; 15 import javax.management.ObjectName ; 16 17 22 public class MLetTag 23 { 24 private String code; 25 private String object; 26 private String archive; 27 private String codebase; 28 private ObjectName objectName; 29 private String version; 30 private ArrayList signature = new ArrayList (); 31 private ArrayList arguments = new ArrayList (); 32 33 44 public URL normalizeCodeBase(URL mletFileURL) 45 { 46 50 URL codebaseURL = null; 51 String codebase = getCodeBase(); 52 if (codebase != null) 53 { 54 try 56 { 57 codebaseURL = new URL (codebase); 58 } 59 catch (MalformedURLException ignored) 60 { 61 try 63 { 64 codebaseURL = new URL (mletFileURL, codebase); 65 } 66 catch (MalformedURLException alsoIgnored) 67 { 68 } 69 } 70 } 71 72 if (codebaseURL == null) 74 { 75 String path = mletFileURL.getPath(); 76 int index = path.lastIndexOf('/'); 77 78 try 79 { 80 codebaseURL = new URL (mletFileURL, path.substring(0, index + 1)); 81 } 82 catch (MalformedURLException ignored) 83 { 84 } 87 } 88 return codebaseURL; 89 } 90 91 94 public String [] parseArchive() 95 { 96 String archive = getArchive(); 97 ArrayList archives = new ArrayList (); 98 StringTokenizer tokenizer = new StringTokenizer (archive, ","); 99 while (tokenizer.hasMoreTokens()) 100 { 101 String token = tokenizer.nextToken().trim(); 102 if (token.length() > 0) 103 { 104 token = token.replace('\\', '/'); 105 archives.add(token); 106 } 107 } 108 return (String [])archives.toArray(new String [0]); 109 } 110 111 115 public URL createArchiveURL(URL codebase, String archive) 116 { 117 try 118 { 119 return new URL (codebase, archive); 120 } 121 catch (MalformedURLException ignored) 122 { 123 } 124 return null; 125 } 126 127 public String getVersion() 128 { 129 return version; 130 } 131 132 public String getCodeBase() 133 { 134 return codebase; 135 } 136 137 public String getArchive() 138 { 139 return archive; 140 } 141 142 public String getCode() 143 { 144 return code; 145 } 146 147 public ObjectName getObjectName() 148 { 149 return objectName; 150 } 151 152 public String getObject() 153 { 154 return object; 155 } 156 157 public String [] getSignature() 158 { 159 return signature == null ? new String [0] : (String [])signature.toArray(new String [signature.size()]); 160 } 161 162 public Object [] getArguments() 163 { 164 return arguments == null ? new Object [0] : (Object [])arguments.toArray(new Object [arguments.size()]); 165 } 166 167 171 void setArchive(String archive) 172 { 173 this.archive = archive; 174 } 175 176 void setCode(String code) 177 { 178 this.code = code; 179 } 180 181 void setCodeBase(String codebase) 182 { 183 185 codebase = codebase.replace('\\', '/'); 186 if (!codebase.endsWith("/")) codebase += "/"; 187 this.codebase = codebase; 188 } 189 190 void setName(ObjectName name) 191 { 192 objectName = name; 193 } 194 195 void setObject(String object) 196 { 197 this.object = object; 198 } 199 200 void setVersion(String version) 201 { 202 this.version = version; 203 } 204 205 void addArg(String type, Object value) 206 { 207 signature.add(type); 208 arguments.add(value); 209 } 210 } 211 | Popular Tags |