author | stechong |
Wed, 11 Aug 2010 14:32:13 -0500 | |
branch | C3_BUILDER_WORK |
changeset 1808 | 88695467fd04 |
parent 1621 | 393b985a50f3 |
child 1847 | 5a696c4ef747 |
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 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
19 |
import org.eclipse.core.runtime.IPath; |
1808 | 20 |
import org.eclipse.core.runtime.Path; |
1621
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
21 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
22 |
import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
23 |
import com.nokia.cpp.internal.api.utils.core.CacheUtils; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
24 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
25 |
public class SDKCacheUtils extends CacheUtils { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
26 |
|
1808 | 27 |
private static final String CACHE_FOLDER_NAME = "CarbideSDKCache"; //$NON-NLS-1$ |
28 |
private static SDKCacheUtils cache; |
|
29 |
||
30 |
public static SDKCacheUtils getCache() { |
|
31 |
if (cache == null) |
|
32 |
{ |
|
33 |
IPath path = new Path(System.getProperty("user.home")); |
|
34 |
cache = new SDKCacheUtils(path.append(CACHE_FOLDER_NAME)); |
|
35 |
} |
|
36 |
return cache; |
|
37 |
} |
|
38 |
||
1621
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
39 |
public SDKCacheUtils(IPath defaultLocation) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
40 |
super(defaultLocation); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
41 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
42 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
43 |
protected CacheEntry loadCachedData(IPath location, String cacheIdentifier) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
44 |
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
|
45 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
46 |
if (flushPath.toFile().exists()) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
47 |
try { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
48 |
final ClassLoader classLoader = SDKCorePlugin.getDefault().getClass().getClassLoader(); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
49 |
FileInputStream fis = new FileInputStream(flushPath.toFile()); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
50 |
ObjectInputStream ois = new ObjectInputStream(fis) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
51 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
52 |
@Override |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
53 |
protected Class<?> resolveClass(ObjectStreamClass desc) |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
54 |
throws IOException, ClassNotFoundException { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
55 |
String name = desc.getName(); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
56 |
try { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
57 |
return classLoader.loadClass(name); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
58 |
} catch (ClassNotFoundException e) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
59 |
return super.resolveClass(desc); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
60 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
61 |
}}; |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
62 |
return new CacheEntry(ois); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
63 |
} catch (Exception e) { |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
64 |
e.printStackTrace(); |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
65 |
} |
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
66 |
} |
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 |
return null; |
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 |
|
393b985a50f3
Raptor scanner discovery on top of new Raptor Query API.
stechong
parents:
diff
changeset
|
71 |
} |