core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SDKCacheUtils.java
author stechong
Wed, 11 Aug 2010 14:32:13 -0500
branchC3_BUILDER_WORK
changeset 1808 88695467fd04
parent 1621 393b985a50f3
child 1847 5a696c4ef747
permissions -rw-r--r--
Removed SDKCacheUtils type from public API.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    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
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    27
	private static final String CACHE_FOLDER_NAME = "CarbideSDKCache"; //$NON-NLS-1$
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    28
	private static SDKCacheUtils cache;
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    29
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    30
	public static SDKCacheUtils getCache() {
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    31
		if (cache == null)
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    32
		{
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    33
			IPath path = new Path(System.getProperty("user.home"));
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    34
			cache = new SDKCacheUtils(path.append(CACHE_FOLDER_NAME));
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    35
		}
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    36
		return cache;
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    37
	}
88695467fd04 Removed SDKCacheUtils type from public API.
stechong
parents: 1621
diff changeset
    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
}