public class ProjectCache
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
protected static class |
ProjectCache.CacheEntry<E> |
protected class |
ProjectCache.CacheEntryFactory<E> |
Modifier and Type | Field and Description |
---|---|
protected static java.util.logging.Logger |
LOGGER |
protected NameSpace |
namespace |
protected oracle.javatools.assembly.AssemblyFactory |
pathFactory |
protected Storage |
storage |
protected Workspace |
workspace |
Modifier | Constructor and Description |
---|---|
protected |
ProjectCache(Workspace workspace) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close this cache.
|
Path |
getContentPath(Project project)
Get the project content path.
|
Path |
getContentPath(Project project,
java.lang.String contentSetKey)
Get the project content path for a specific content set.
|
java.util.Collection<Project> |
getDirectDependencies(Project project)
Get the projects that a project directly depends on.
|
java.util.Collection<Project> |
getDownstreamDependencies(Project project)
Get the downstream dependencies of a project.
|
static ProjectCache |
getInstance(Workspace workspace)
Get the project cache for an application workspace.
|
protected java.util.logging.Logger |
getLogger()
Get the logger used to log messages related to the cache.
|
protected Path |
getPath(Project project,
java.lang.String key)
Get a path from the cache.
|
protected java.lang.String |
getProjectKey(Project project,
java.lang.String key)
Get the key used to store data in the cache.
|
java.lang.String[] |
getTechnologyScopeKeys(Project project)
Get the technology scope keys used by a project.
|
java.util.Collection<Project> |
getTransitiveDependencies(Project project)
Get the transitive closure of the projects a project depends on.
|
protected static long |
getUserTimestamp(Project project)
Get the timestamp when a project was last invalidated, or
-1 if
the project has never been invalidated. |
protected static long |
getUserTimestamp(Workspace workspace)
Get the timestamp when a workspace was last invalidated, or
-1 if
the workspace has never been invalidated. |
static void |
invalidate(java.util.Collection<Project> projects)
Invalidate the project cache for a set of projects.
|
static void |
invalidate(Project project)
Invalidate the project cache for a specific project.
|
static void |
invalidate(Workspace workspace)
Invalidate the project cache for an application workspace.
|
protected static boolean |
isEnabled()
Determine whether the cache is enabled.
|
protected boolean |
isValid(Project project,
ProjectCache.CacheEntry entry)
Determine if a cached entry is still valid.
|
protected Project |
loadProject(Project project)
Gets the project in order to load it.
|
protected void |
putPath(Project project,
java.lang.String key,
Path path)
Put a path in the cache.
|
protected static final java.util.logging.Logger LOGGER
protected final oracle.javatools.assembly.AssemblyFactory pathFactory
protected final Workspace workspace
protected final Storage storage
protected final NameSpace namespace
protected ProjectCache(Workspace workspace)
public static ProjectCache getInstance(Workspace workspace)
close()
on the cache instance when the
cache is no longer in use.workspace
- the workspacepublic static void invalidate(Workspace workspace)
workspace
- the workspacepublic static void invalidate(java.util.Collection<Project> projects)
projects
- the projectspublic static void invalidate(Project project)
project
- the projectprotected static long getUserTimestamp(Workspace workspace)
-1
if
the workspace has never been invalidated.workspace
- the workspaceinvalidate(Workspace)
protected static long getUserTimestamp(Project project)
-1
if
the project has never been invalidated.project
- the projectpublic void close()
public Path getContentPath(Project project)
project
- the projectProjectContent.getAllContents()
public Path getContentPath(Project project, java.lang.String contentSetKey)
project
- the projectcontentSetKey
- the content set keyProjectContent.getContentSet(java.lang.String)
public java.util.Collection<Project> getDirectDependencies(Project project)
project
- the projectpublic java.util.Collection<Project> getTransitiveDependencies(Project project) throws java.lang.InterruptedException
project
- the projectjava.lang.InterruptedException
- if the calling thread is interruptedpublic java.util.Collection<Project> getDownstreamDependencies(Project project) throws java.lang.InterruptedException
project
- the projectjava.lang.InterruptedException
- if the calling thread is interruptedpublic java.lang.String[] getTechnologyScopeKeys(Project project)
project
- the projectprotected Path getPath(Project project, java.lang.String key)
project
- the project the path was cached forkey
- the path keynull
if the path is not cachedprotected void putPath(Project project, java.lang.String key, Path path)
project
- the project the path is being cached forkey
- the path keypath
- the path to be cachedprotected Project loadProject(Project project)
protected java.util.logging.Logger getLogger()
protected java.lang.String getProjectKey(Project project, java.lang.String key)
project
- the project the data is being cached forkey
- the data keyprotected boolean isValid(Project project, ProjectCache.CacheEntry entry)
project
- the project the entry was cached forentry
- the cached entrytrue
if the entry is valid and can be used,
or false
if the entry is invalid and must be updatedprotected static boolean isEnabled()
true
if the cache is enabled, false
otherwise