PageRenderTime 45ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/carrot-jdk7-jnlp-decompile-deploy/src/main/java/com/sun/deploy/cache/DefaultLocalApplicationProperties.java

https://github.com/carrot-garden/carrot-jnlper
Java | 432 lines | 377 code | 51 blank | 4 comment | 35 complexity | 86e34eb70162487443431cadfd1aa777 MD5 | raw file
  1. package com.sun.deploy.cache;
  2. import com.sun.deploy.Environment;
  3. import com.sun.deploy.trace.Trace;
  4. import java.io.ByteArrayInputStream;
  5. import java.io.ByteArrayOutputStream;
  6. import java.io.IOException;
  7. import java.net.URL;
  8. import java.text.DateFormat;
  9. import java.text.ParseException;
  10. import java.util.ArrayList;
  11. import java.util.Date;
  12. import java.util.Properties;
  13. public class DefaultLocalApplicationProperties
  14. implements LocalApplicationProperties
  15. {
  16. private static final String REBOOT_NEEDED_KEY = "rebootNeeded";
  17. private static final String UPDATE_CHECK_KEY = "forcedUpdateCheck";
  18. private static final String NATIVELIB_DIR_KEY = "nativeLibDir";
  19. private static final String INSTALL_DIR_KEY = "installDir";
  20. private static final String LAST_ACCESSED_KEY = "lastAccessed";
  21. private static final String LAUNCH_COUNT_KEY = "launchCount";
  22. private static final String ASK_INSTALL_KEY = "askedInstall";
  23. private static final String SHORTCUT_KEY = "locallyInstalled";
  24. private static final String EXTENSION_KEY = "extensionInstalled";
  25. private static final String JNLP_INSTALLED_KEY = "jnlpInstalled";
  26. private static final String INDIRECT_PATH_KEY = "indirectPath";
  27. private static final String ASSOCIATION_MIME_KEY = "mime.types.";
  28. private static final String REGISTERED_TITLE_KEY = "title";
  29. private static final String ASSOCIATION_EXTENSIONS_KEY = "extensions.";
  30. private static final String DRAGGED_APPLET_KEY = "draggedApplet";
  31. private static final String DOCUMENTBASE_KEY = "documentBase";
  32. private static final String CODEBASE_KEY = "codebase";
  33. private static final DateFormat _df = DateFormat.getDateTimeInstance();
  34. private Properties _properties;
  35. private URL _location;
  36. private String _versionId;
  37. private long _lastAccessed;
  38. private boolean _isApplicationDescriptor;
  39. private boolean _dirty;
  40. private boolean _isShortcutInstalledSystem;
  41. public DefaultLocalApplicationProperties(URL paramURL, String paramString, boolean paramBoolean)
  42. {
  43. this._location = paramURL;
  44. this._versionId = paramString;
  45. this._isApplicationDescriptor = paramBoolean;
  46. this._properties = getLocalApplicationPropertiesStorage(this);
  47. this._isShortcutInstalledSystem = false;
  48. }
  49. public URL getLocation()
  50. {
  51. return this._location;
  52. }
  53. public String getVersionId()
  54. {
  55. return this._versionId;
  56. }
  57. public void setLastAccessed(Date paramDate)
  58. {
  59. put("lastAccessed", _df.format(paramDate));
  60. }
  61. public Date getLastAccessed()
  62. {
  63. return getDate("lastAccessed");
  64. }
  65. public void incrementLaunchCount()
  66. {
  67. int i = getLaunchCount();
  68. i++;
  69. put("launchCount", Integer.toString(i));
  70. }
  71. public int getLaunchCount()
  72. {
  73. return getInteger("launchCount");
  74. }
  75. public void setAskedForInstall(boolean paramBoolean)
  76. {
  77. put("askedInstall", new Boolean(paramBoolean).toString());
  78. }
  79. public boolean getAskedForInstall()
  80. {
  81. return getBoolean("askedInstall");
  82. }
  83. public void setRebootNeeded(boolean paramBoolean)
  84. {
  85. put("rebootNeeded", new Boolean(paramBoolean).toString());
  86. }
  87. public boolean isRebootNeeded()
  88. {
  89. return getBoolean("rebootNeeded");
  90. }
  91. public void setDraggedApplet()
  92. {
  93. put("draggedApplet", new Boolean(true).toString());
  94. }
  95. public boolean isDraggedApplet()
  96. {
  97. return getBoolean("draggedApplet");
  98. }
  99. public void setDocumentBase(String paramString)
  100. {
  101. put("documentBase", paramString);
  102. }
  103. public String getDocumentBase()
  104. {
  105. return get("documentBase");
  106. }
  107. public void setCodebase(String paramString)
  108. {
  109. put("codebase", paramString);
  110. }
  111. public String getCodebase()
  112. {
  113. return get("codebase");
  114. }
  115. public void setShortcutInstalled(boolean paramBoolean)
  116. {
  117. put("locallyInstalled", new Boolean(paramBoolean).toString());
  118. }
  119. public boolean isShortcutInstalled()
  120. {
  121. return getBoolean("locallyInstalled");
  122. }
  123. public boolean isShortcutInstalledSystem()
  124. {
  125. return this._isShortcutInstalledSystem;
  126. }
  127. public void setExtensionInstalled(boolean paramBoolean)
  128. {
  129. setShortcutInstalled(false);
  130. put("extensionInstalled", new Boolean(paramBoolean).toString());
  131. }
  132. public boolean isExtensionInstalled()
  133. {
  134. return (getBoolean("extensionInstalled")) || (getBoolean("locallyInstalled"));
  135. }
  136. public void setJnlpInstalled(boolean paramBoolean)
  137. {
  138. put("jnlpInstalled", new Boolean(paramBoolean).toString());
  139. }
  140. public boolean isJnlpInstalled()
  141. {
  142. return getBoolean("jnlpInstalled");
  143. }
  144. public boolean forceUpdateCheck()
  145. {
  146. return getBoolean("forcedUpdateCheck");
  147. }
  148. public void setForceUpdateCheck(boolean paramBoolean)
  149. {
  150. put("forcedUpdateCheck", new Boolean(paramBoolean).toString());
  151. }
  152. public boolean isApplicationDescriptor()
  153. {
  154. return this._isApplicationDescriptor;
  155. }
  156. public boolean isExtensionDescriptor()
  157. {
  158. return !this._isApplicationDescriptor;
  159. }
  160. public String getInstallDirectory()
  161. {
  162. return get("installDir");
  163. }
  164. public void setInstallDirectory(String paramString)
  165. {
  166. put("installDir", paramString);
  167. }
  168. public String getNativeLibDirectory()
  169. {
  170. return get("nativeLibDir");
  171. }
  172. public void setNativeLibDirectory(String paramString)
  173. {
  174. put("nativeLibDir", paramString);
  175. }
  176. public String getRegisteredTitle()
  177. {
  178. return get("title");
  179. }
  180. public void setRegisteredTitle(String paramString)
  181. {
  182. put("title", paramString);
  183. }
  184. public void setAssociations(AssociationDesc[] paramArrayOfAssociationDesc)
  185. {
  186. int i = 0;
  187. if (paramArrayOfAssociationDesc == null)
  188. {
  189. AssociationDesc[] arrayOfAssociationDesc = getAssociations();
  190. if (arrayOfAssociationDesc != null)
  191. {
  192. put("mime.types." + i, null);
  193. put("extensions." + i, null);
  194. }
  195. }
  196. else
  197. {
  198. for (i = 0; i < paramArrayOfAssociationDesc.length; i++)
  199. {
  200. put("mime.types." + i, paramArrayOfAssociationDesc[i].getMimeType());
  201. put("extensions." + i, paramArrayOfAssociationDesc[i].getExtensions());
  202. }
  203. put("mime.types." + i, null);
  204. put("extensions." + i, null);
  205. }
  206. }
  207. public void addAssociation(AssociationDesc paramAssociationDesc)
  208. {
  209. AssociationDesc[] arrayOfAssociationDesc2 = getAssociations();
  210. int i = 0;
  211. AssociationDesc[] arrayOfAssociationDesc1;
  212. if (arrayOfAssociationDesc2 == null)
  213. {
  214. arrayOfAssociationDesc1 = new AssociationDesc[1];
  215. }
  216. else
  217. {
  218. arrayOfAssociationDesc1 = new AssociationDesc[arrayOfAssociationDesc2.length + 1];
  219. while (i < arrayOfAssociationDesc2.length)
  220. {
  221. arrayOfAssociationDesc1[i] = arrayOfAssociationDesc2[i];
  222. i++;
  223. }
  224. }
  225. arrayOfAssociationDesc1[i] = paramAssociationDesc;
  226. setAssociations(arrayOfAssociationDesc1);
  227. }
  228. public AssociationDesc[] getAssociations()
  229. {
  230. ArrayList localArrayList = new ArrayList();
  231. for (int i = 0; ; i++)
  232. {
  233. String str1 = get("mime.types." + i);
  234. String str2 = get("extensions." + i);
  235. if ((str1 == null) && (str2 == null))
  236. break;
  237. localArrayList.add(new AssociationDesc(str2, str1, null, null));
  238. }
  239. return (AssociationDesc[])(AssociationDesc[])localArrayList.toArray(new AssociationDesc[0]);
  240. }
  241. public void put(String paramString1, String paramString2)
  242. {
  243. synchronized (this)
  244. {
  245. if (paramString2 == null)
  246. this._properties.remove(paramString1);
  247. else
  248. this._properties.put(paramString1, paramString2);
  249. this._dirty = true;
  250. }
  251. }
  252. public String get(String paramString)
  253. {
  254. synchronized (this)
  255. {
  256. return (String)this._properties.get(paramString);
  257. }
  258. }
  259. public int getInteger(String paramString)
  260. {
  261. String str = get(paramString);
  262. if (str == null)
  263. return 0;
  264. int i = 0;
  265. try
  266. {
  267. i = Integer.parseInt(str);
  268. }
  269. catch (NumberFormatException localNumberFormatException)
  270. {
  271. i = 0;
  272. }
  273. return i;
  274. }
  275. public boolean getBoolean(String paramString)
  276. {
  277. String str = get(paramString);
  278. if (str == null)
  279. return false;
  280. return Boolean.valueOf(str).booleanValue();
  281. }
  282. public Date getDate(String paramString)
  283. {
  284. String str = get(paramString);
  285. if (str == null)
  286. return null;
  287. try
  288. {
  289. return _df.parse(str);
  290. }
  291. catch (ParseException localParseException)
  292. {
  293. }
  294. return null;
  295. }
  296. public boolean doesNewVersionExist()
  297. {
  298. synchronized (this)
  299. {
  300. long l = Cache.getLastAccessed(Environment.isSystemCacheMode());
  301. if (l == 0L)
  302. return false;
  303. if (l > this._lastAccessed)
  304. return true;
  305. }
  306. return false;
  307. }
  308. public synchronized void store()
  309. throws IOException
  310. {
  311. putLocalApplicationPropertiesStorage(this, this._properties);
  312. this._dirty = false;
  313. }
  314. public void refreshIfNecessary()
  315. {
  316. synchronized (this)
  317. {
  318. if ((!this._dirty) && (doesNewVersionExist()))
  319. refresh();
  320. }
  321. }
  322. public void refresh()
  323. {
  324. synchronized (this)
  325. {
  326. Properties localProperties = getLocalApplicationPropertiesStorage(this);
  327. this._properties = localProperties;
  328. this._dirty = false;
  329. }
  330. }
  331. private Properties getLocalApplicationPropertiesStorage(DefaultLocalApplicationProperties paramDefaultLocalApplicationProperties)
  332. {
  333. Properties localProperties = new Properties();
  334. try
  335. {
  336. URL localURL = paramDefaultLocalApplicationProperties.getLocation();
  337. String str1 = paramDefaultLocalApplicationProperties.getVersionId();
  338. if (localURL != null)
  339. {
  340. char c = paramDefaultLocalApplicationProperties.isApplicationDescriptor() ? 'A' : 'E';
  341. byte[] arrayOfByte = Cache.getLapData(c, localURL, str1, true);
  342. if (arrayOfByte != null)
  343. {
  344. localProperties.load(new ByteArrayInputStream(arrayOfByte));
  345. String str2 = (String)localProperties.get("locallyInstalled");
  346. if (str2 != null)
  347. this._isShortcutInstalledSystem = Boolean.valueOf(str2).booleanValue();
  348. }
  349. arrayOfByte = Cache.getLapData(c, localURL, str1, false);
  350. if (arrayOfByte != null)
  351. localProperties.load(new ByteArrayInputStream(arrayOfByte));
  352. this._lastAccessed = System.currentTimeMillis();
  353. }
  354. }
  355. catch (IOException localIOException)
  356. {
  357. Trace.ignoredException(localIOException);
  358. }
  359. return localProperties;
  360. }
  361. private void putLocalApplicationPropertiesStorage(DefaultLocalApplicationProperties paramDefaultLocalApplicationProperties, Properties paramProperties)
  362. throws IOException
  363. {
  364. ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
  365. try
  366. {
  367. paramProperties.store(localByteArrayOutputStream, "LAP");
  368. }
  369. catch (IOException localIOException)
  370. {
  371. }
  372. localByteArrayOutputStream.close();
  373. char c = paramDefaultLocalApplicationProperties.isApplicationDescriptor() ? 'A' : 'E';
  374. Cache.putLapData(c, paramDefaultLocalApplicationProperties.getLocation(), paramDefaultLocalApplicationProperties.getVersionId(), localByteArrayOutputStream.toByteArray());
  375. this._lastAccessed = System.currentTimeMillis();
  376. }
  377. }
  378. /* Location: /opt/sun/java32/jdk1.7.0_04/jre/lib/deploy.jar
  379. * Qualified Name: com.sun.deploy.cache.DefaultLocalApplicationProperties
  380. * JD-Core Version: 0.6.0
  381. */