author | timkelly |
Tue, 17 Aug 2010 15:50:47 -0700 | |
branch | C3_BUILDER_WORK |
changeset 1847 | 5a696c4ef747 |
parent 1808 | 88695467fd04 |
child 1871 | 4d38e1ac1cff |
permissions | -rw-r--r-- |
1621
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
1 |
/******************************************************************************* |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia and others. |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
3 |
* All rights reserved. This program and the accompanying materials |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
5 |
* which accompanies this distribution, and is available at |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
6 |
* http://www.eclipse.org/legal/epl-v10.html |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
7 |
* |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
8 |
* Contributors: |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
9 |
* Nokia - Initial API and implementation |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
10 |
*******************************************************************************/ |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
11 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
12 |
package com.nokia.carbide.cpp.internal.api.sdk; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
13 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
14 |
import java.io.FileInputStream; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
15 |
import java.io.IOException; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
16 |
import java.io.ObjectInputStream; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
17 |
import java.io.ObjectStreamClass; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
18 |
|
1847 | 19 |
import javax.swing.filechooser.FileSystemView; |
20 |
||
1621
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
21 |
import org.eclipse.core.runtime.IPath; |
1808 | 22 |
import org.eclipse.core.runtime.Path; |
1621
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
23 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
24 |
import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
25 |
import com.nokia.cpp.internal.api.utils.core.CacheUtils; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
26 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
27 |
public class SDKCacheUtils extends CacheUtils { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
28 |
|
1808 | 29 |
private static final String CACHE_FOLDER_NAME = "CarbideSDKCache"; //$NON-NLS-1$ |
30 |
private static SDKCacheUtils cache; |
|
31 |
||
32 |
public static SDKCacheUtils getCache() { |
|
33 |
if (cache == null) |
|
34 |
{ |
|
35 |
IPath path = new Path(System.getProperty("user.home")); |
|
36 |
cache = new SDKCacheUtils(path.append(CACHE_FOLDER_NAME)); |
|
37 |
} |
|
38 |
return cache; |
|
39 |
} |
|
40 |
||
1621
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
41 |
public SDKCacheUtils(IPath defaultLocation) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
42 |
super(defaultLocation); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
43 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
44 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
45 |
protected CacheEntry loadCachedData(IPath location, String cacheIdentifier) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
46 |
IPath flushPath = location.append(Integer.toString(cacheIdentifier.hashCode())).addFileExtension("txt"); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
47 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
48 |
if (flushPath.toFile().exists()) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
49 |
try { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
50 |
final ClassLoader classLoader = SDKCorePlugin.getDefault().getClass().getClassLoader(); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
51 |
FileInputStream fis = new FileInputStream(flushPath.toFile()); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
52 |
ObjectInputStream ois = new ObjectInputStream(fis) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
53 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
54 |
@Override |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
55 |
protected Class<?> resolveClass(ObjectStreamClass desc) |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
56 |
throws IOException, ClassNotFoundException { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
57 |
String name = desc.getName(); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
58 |
try { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
59 |
return classLoader.loadClass(name); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
60 |
} catch (ClassNotFoundException e) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
61 |
return super.resolveClass(desc); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
62 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
63 |
}}; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
64 |
return new CacheEntry(ois); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
65 |
} catch (Exception e) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
66 |
e.printStackTrace(); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
67 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
68 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
69 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
70 |
return null; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
71 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
72 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
73 |
} |