Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceTimestampMappings.java')
-rw-r--r--plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceTimestampMappings.java279
1 files changed, 0 insertions, 279 deletions
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceTimestampMappings.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceTimestampMappings.java
deleted file mode 100644
index 47710ab04..000000000
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceTimestampMappings.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.componentcore.internal.resources;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-
-/**
- * Maps resources to cached data and remembers when the data was cached based on a timestamp
- * signature of a given resource.
- *
- */
-public class ResourceTimestampMappings {
-
- private static final IPath COMPONENT_MANIFEST_PATH = new Path(".settings/org.eclipse.wst.common.component");
- private static final IPath FACET_CONFIG_PATH = new Path(".settings/org.eclipse.wst.common.project.facet.core.xml");
-
- private static final Object NO_DATA = new Object();
- private static final Object ERROR = new Object();
-
- private final Map timestamps = new HashMap();
- private final Map data = new HashMap();
-
-
- /**
- * Record a timestamp signature for the given resource.
- * <p>
- * Clients may use {@link #hasChanged(IResource)} to determine if the resource has changed since
- * it was recorded.
- * </p>
- *
- * @param resource
- * The resource that was processed.
- * @return True if the recording was successfull. The recording may fail if the resource does
- * not exist.
- *
- * @see #hasChanged(IResource)
- */
- public synchronized boolean mark(IResource resource) {
- return mark(resource, NO_DATA);
- }
-
- /**
- * Cache the data that was determined when processing the resource. The a timestamp signature
- * will be recorded for the resource as well.
- *
- * <p>
- * Clients may use {@link #hasChanged(IResource)} to determine if the cached data should be
- * replaced.
- * </p>
- *
- * @param resource
- * The resource that was processed.
- * @param cachedData
- * The data that was determined when the Resource was processed.
- *
- * @return True if the recording was successfull. The recording may fail if the resource does
- * not exist.
- *
- *
- * @see #hasChanged(IResource)
- * @see #hasCacheData(IResource)
- */
- public synchronized boolean mark(IResource resource, Object cachedData) {
-
- if (resource.getModificationStamp() != IResource.NULL_STAMP) {
- if (timestamps.containsKey(resource)) {
- TimestampSignature signature = (TimestampSignature) timestamps.get(resource);
- signature.update(resource);
- } else {
- timestamps.put(resource, createTimestampSignature(resource));
- }
- data.put(resource, cachedData);
- return true;
- }
- return false;
- }
-
- /**
- * Note that an error occurred when processing this resource.
- *
- * @param resource
- * The resource that had some sort of error while processing.
- * @return True if the error was recorded. The error may not be recorded if the resource does
- * not exist.
- * @see #hasCacheError(IResource)
- */
- public synchronized boolean markError(IResource resource) {
-
- if (resource.getModificationStamp() != IResource.NULL_STAMP) {
- if (timestamps.containsKey(resource)) {
- TimestampSignature signature = (TimestampSignature) timestamps.get(resource);
- signature.update(resource);
- } else {
- timestamps.put(resource, createTimestampSignature(resource));
- }
- data.put(resource, ERROR);
- return true;
- }
- return false;
- }
-
- /**
- *
- * @param resource
- * The resource that was or is about to be processed.
- * @return True if the given resource has changed in a noticeable way since it was marked.
- *
- * @see #mark(IResource)
- * @see #mark(IResource, Object)
- * @see #markError(IResource)
- */
- public boolean hasChanged(IResource resource) {
- TimestampSignature signature = (TimestampSignature) timestamps.get(resource);
- return signature == null || signature.hasChanged(resource);
- }
-
- /**
- *
- * @param resource
- * The resource that was or is about to be processed.
- * @return True if there is any data cached for the given resource.
- *
- * @see #mark(IResource)
- * @see #mark(IResource, Object)
- * @see #markError(IResource)
- */
- public boolean hasCacheData(IResource resource) {
- Object datum = data.get(resource);
- return datum != null && datum != NO_DATA;
-
- }
-
-
- /**
- *
- * @param resource
- * The resource that was or is about to be processed.
- * @return True if there is any data cached for the given resource.
- *
- * @see #mark(IResource)
- * @see #mark(IResource, Object)
- * @see #markError(IResource)
- */
- public boolean hasCacheError(IResource resource) {
- return data.get(resource) == ERROR;
- }
-
- public Object getData(IResource resource) {
- Object datum = data.get(resource);
- if (datum != NO_DATA)
- return datum;
- return null;
- }
-
-
- private TimestampSignature createTimestampSignature(IResource resource) {
- switch (resource.getType()) {
- case IResource.PROJECT :
- return new ProjectTimestamp((IProject) resource);
- default :
- return new SimpleResourceTimestamp(resource);
- }
- }
-
- /**
- * Provides a point in time signature of a Resource to determine whether that resource has
- * changed in a meaningful way since the time this signature was created or last updated.
- *
- */
- public interface TimestampSignature {
-
- /**
- *
- * @param resource
- * A resource related to this signature
- * @return True if the current resource is different from this signature in a meaningful way
- */
- boolean hasChanged(IResource resource);
-
- /**
- *
- * @param resource
- * Update the signature details to the given resource's signature.
- */
- void update(IResource resource);
-
- }
-
- /**
- * Provides a signature based on the modificationStamp of a resource.
- */
- public class SimpleResourceTimestamp implements TimestampSignature {
- private long timestamp = 0;
-
- public SimpleResourceTimestamp(IResource resource) {
- update(resource);
- }
-
- public boolean hasChanged(IResource resource) {
- return timestamp != resource.getModificationStamp();
- }
-
- public void update(IResource resource) {
- timestamp = resource.getModificationStamp();
- }
- }
-
- /**
- * Provides a signature for a project based on the modificationStamp of the (1) project, (2) the
- * component manifest, and (3) the facet configuration
- */
- public class ProjectTimestamp implements TimestampSignature {
-
- private long projectTimestamp = 0;
- private long componentManifestTimestamp = 0;
- private long facetConfigTimestamp = 0;
-
- public ProjectTimestamp(IProject project) {
- update(project);
- }
-
- public boolean hasChanged(IResource resource) {
- if (resource.getType() == IResource.PROJECT) {
- IProject project = (IProject) resource;
- if (projectTimestamp != project.getModificationStamp())
- return true;
-
- IFile file = project.getFile(COMPONENT_MANIFEST_PATH);
- if (!file.exists() || componentManifestTimestamp != file.getModificationStamp())
- return true;
-
- file = project.getFile(FACET_CONFIG_PATH);
- if (!file.exists() || facetConfigTimestamp != file.getModificationStamp())
- return true;
-
- return false;
- }
- return true;
-
- }
-
- public void update(IResource resource) {
-
- if (resource instanceof IProject) {
-
- IProject project = (IProject) resource;
-
- projectTimestamp = project.getModificationStamp();
-
- IFile file = project.getFile(COMPONENT_MANIFEST_PATH);
- componentManifestTimestamp = file.getModificationStamp();
-
- file = project.getFile(FACET_CONFIG_PATH);
- facetConfigTimestamp = file.getModificationStamp();
-
- } else {
- projectTimestamp = componentManifestTimestamp = facetConfigTimestamp = IResource.NULL_STAMP;
- }
-
- }
- }
-
-}

Back to the top