Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


Eclipse Platform
Release 3.5

org.eclipse.core.resources.mapping
Class RemoteResourceMappingContext


java.lang.Object
  extended by 

org.eclipse.core.resources.mapping.ResourceMappingContext
      extended by 
org.eclipse.core.resources.mapping.RemoteResourceMappingContext
Direct Known Subclasses:
SubscriberResourceMappingContext

public abstract class RemoteResourceMappingContext
extends ResourceMappingContext

A remote mapping context provides a model element with a view of the remote state of local resources as they relate to a repository operation that is in progress. A repository provider can pass an instance of this interface to a model element when obtaining a set of traversals for a model element. This allows the model element to query the remote state of a resource in order to determine if there are resources that exist remotely but do not exist locally that should be included in the traversal.

This class may be subclassed by clients.

Since:
3.2
See Also:
ResourceMapping, ResourceMappingContext

Field Summary
static int FILE_CONTENTS_REQUIRED
          Refresh flag constant (bit mask value 1) indicating that the mapping will be making use of the contents of the files covered by the traversals being refreshed.
static int NONE
          Refresh flag constant (bit mask value 0) indicating that no additional refresh behavior is required.
 
Fields inherited from class org.eclipse.core.resources.mapping. ResourceMappingContext
LOCAL_CONTEXT
 
Constructor Summary
RemoteResourceMappingContext ()
           
 
Method Summary
abstract   IStorage fetchBaseContents ( IFile file, IProgressMonitor monitor)
          For three-way comparisons, returns an instance of IStorage in order to allow the caller to access the contents of the base resource that corresponds to the given local resource.
  IResource[] fetchBaseMembers ( IContainer container, IProgressMonitor monitor)
          Returns the members of the base resource corresponding to the given container.
abstract   IResource[] fetchMembers ( IContainer container, IProgressMonitor monitor)
          Returns the combined members of the base and remote resources corresponding to the given container.
abstract   IStorage fetchRemoteContents ( IFile file, IProgressMonitor monitor)
          Returns an instance of IStorage in order to allow the caller to access the contents of the remote that corresponds to the given local resource.
  IResource[] fetchRemoteMembers ( IContainer container, IProgressMonitor monitor)
          Returns the members of the remote resource corresponding to the given container.
abstract   IProject[] getProjects ()
          Return the list of projects that apply to this context.
abstract  boolean hasLocalChange ( IResource resource, IProgressMonitor monitor)
          For three-way comparisons, this method indicates whether local modifications have been made to the given resource.
abstract  boolean hasRemoteChange ( IResource resource, IProgressMonitor monitor)
          For two-way comparisons, return whether the contents of the corresponding remote differs from the content of the local file in the context of the current operation.
abstract  boolean isThreeWay ()
          Return true if the context is associated with an operation that is using a three-way comparison and false if it is using a two-way comparison.
abstract  void refresh ( ResourceTraversal[] traversals, int flags, IProgressMonitor monitor)
          Refresh the known remote state for any resources covered by the given traversals.
 
Methods inherited from class java.lang. Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FILE_CONTENTS_REQUIRED

public static final int FILE_CONTENTS_REQUIRED
Refresh flag constant (bit mask value 1) indicating that the mapping will be making use of the contents of the files covered by the traversals being refreshed.

See Also:
Constant Field Values

NONE

public static final int NONE
Refresh flag constant (bit mask value 0) indicating that no additional refresh behavior is required.

See Also:
Constant Field Values
Constructor Detail

RemoteResourceMappingContext

public RemoteResourceMappingContext()
Method Detail

fetchBaseContents

public abstract 
IStorage fetchBaseContents(
IFile file,
                                           
IProgressMonitor monitor)
                                    throws 
CoreException
For three-way comparisons, returns an instance of IStorage in order to allow the caller to access the contents of the base resource that corresponds to the given local resource. The base of a resource is the contents of the resource before any local modifications were made. If the base file does not exist, or if this is a two-way comparison, null is returned. The provided local file handle need not exist locally. A exception is thrown if the corresponding base resource is not a file.

This method may be long running as a server may need to be contacted to obtain the contents of the file.

Parameters:
file - the local file
monitor - a progress monitor, or null if progress reporting is not desired
Returns:
a storage that provides access to the contents of the local resource's corresponding remote resource. If the remote file does not exist, null is returned
Throws:
CoreException - if the contents could not be fetched. Reasons include:

fetchBaseMembers

public 
IResource[] fetchBaseMembers(
IContainer container,
                                    
IProgressMonitor monitor)
                             throws 
CoreException
Returns the members of the base resource corresponding to the given container. The container and the returned members need not exist locally and may not include all children that exist locally. An empty list is returned if the base resource is empty or does not exist. An exception is thrown if the base resource is not capable of having members. This method returns null if the base members cannot be computed, in which case clients should call fetchMembers(IContainer, IProgressMonitor) which returns the combined members for the base and remote.

This method may be long running as a server may need to be contacted to obtain the members of the base resource.

This default implementation always returns null, but subclasses may override.

Parameters:
container - the local container
monitor - a progress monitor, or null if progress reporting is not desired
Returns:
the members of the base resource corresponding to the given container
Throws:
CoreException - if the members could not be fetched. Reasons include:
Since:
3.3

fetchMembers

public abstract 
IResource[] fetchMembers(
IContainer container,
                                         
IProgressMonitor monitor)
                                  throws 
CoreException
Returns the combined members of the base and remote resources corresponding to the given container. The container need not exist locally and the result may include entries that do not exist locally and may not include all local children. An empty list is returned if the remote resource which corresponds to the container is empty or if the remote does not exist. An exception is thrown if the corresponding remote is not capable of having members.

This method may be long running as a server may need to be contacted to obtain the members of the container's corresponding remote resource.

Parameters:
container - the local container
monitor - a progress monitor, or null if progress reporting is not desired
Returns:
returns the combined members of the base and remote resources corresponding to the given container.
Throws:
CoreException - if the members could not be fetched. Reasons include:

fetchRemoteContents

public abstract 
IStorage fetchRemoteContents(
IFile file,
                                             
IProgressMonitor monitor)
                                      throws 
CoreException
Returns an instance of IStorage in order to allow the caller to access the contents of the remote that corresponds to the given local resource. If the remote file does not exist, null is returned. The provided local file handle need not exist locally. A exception is thrown if the corresponding remote resource is not a file.

This method may be long running as a server may need to be contacted to obtain the contents of the file.

Parameters:
file - the local file
monitor - a progress monitor, or null if progress reporting is not desired
Returns:
a storage that provides access to the contents of the local resource's corresponding remote resource. If the remote file does not exist, null is returned
Throws:
CoreException - if the contents could not be fetched. Reasons include:

fetchRemoteMembers

public 
IResource[] fetchRemoteMembers(
IContainer container,
                                      
IProgressMonitor monitor)
                               throws 
CoreException
Returns the members of the remote resource corresponding to the given container. The container and the returned members need not exist locally and may not include all children that exist locally. An empty list is returned if the remote resource is empty or does not exist. An exception is thrown if the remote resource is not capable of having members. This method returns null if the remote members cannot be computed, in which case clients should call fetchMembers(IContainer, IProgressMonitor) which returns the combined members for the base and remote.

This method may be long running as a server may need to be contacted to obtain the members of the remote resource.

This default implementation always returns null, but subclasses may override.

Parameters:
container - the local container
monitor - a progress monitor, or null if progress reporting is not desired
Returns:
the members of the remote resource corresponding to the given container
Throws:
CoreException - if the members could not be fetched. Reasons include:
Since:
3.3

getProjects

public abstract 
IProject[] getProjects()
Return the list of projects that apply to this context. In other words, the context is only capable of querying the remote state for projects that are contained in the returned list.

Returns:
the list of projects that apply to this context

hasLocalChange

public abstract boolean hasLocalChange(
IResource resource,
                                       
IProgressMonitor monitor)
                                throws 
CoreException
For three-way comparisons, this method indicates whether local modifications have been made to the given resource. For two-way comparisons, calling this method has the same effect as calling hasRemoteChange(IResource, IProgressMonitor).

Parameters:
resource - the resource being tested
monitor - a progress monitor
Returns:
whether the resource contains local modifications
Throws:
CoreException - if the contents could not be compared. Reasons include:

hasRemoteChange

public abstract boolean hasRemoteChange(
IResource resource,
                                        
IProgressMonitor monitor)
                                 throws 
CoreException
For two-way comparisons, return whether the contents of the corresponding remote differs from the content of the local file in the context of the current operation. By this we mean that this method will return true if the remote contents differ from the local contents.

For three-way comparisons, return whether the contents of the corresponding remote differ from the contents of the base. In other words, this method returns true if the corresponding remote has changed since the last time the local resource was updated with the remote contents.

For two-way comparisons, return true if the remote contents differ from the local contents. In this case, this method is equivalent to hasLocalChange(IResource, IProgressMonitor)

This can be used by clients to determine if they need to fetch the remote contents in order to determine if the resources that constitute the model element are different in the remote location. If the local file exists and the remote file does not, or the remote file exists and the local does not then the contents will be said to differ (i.e. true is returned). Also, implementors will most likely use a timestamp based comparison to determine if the contents differ. This may lead to a situation where true is returned but the actual contents do not differ. Clients must be prepared handle this situation.

Parameters:
resource - the local resource
monitor - a progress monitor, or null if progress reporting is not desired
Returns:
whether the contents of the corresponding remote differ from the base.
Throws:
CoreException - if the contents could not be compared. Reasons include:

isThreeWay

public abstract boolean isThreeWay()
Return true if the context is associated with an operation that is using a three-way comparison and false if it is using a two-way comparison.

Returns:
whether the context is a three-way or two-way

refresh

public abstract void refresh(
ResourceTraversal[] traversals,
                             int flags,
                             
IProgressMonitor monitor)
                      throws 
CoreException
Refresh the known remote state for any resources covered by the given traversals. Clients who require the latest remote state should invoke this method before invoking any others of the class. Mappings can use this method as a hint to the context provider of which resources will be required for the mapping to generate the proper set of traversals.

Note that this is really only a hint to the context provider. It is up to implementors to decide, based on the provided traversals, how to efficiently perform the refresh. In the ideal case, calls to hasRemoteChange(IResource, IProgressMonitor) and fetchMembers(org.eclipse.core.resources.IContainer, org.eclipse.core.runtime.IProgressMonitor) would not need to contact the server after a call to a refresh with appropriate traversals. Also, ideally, if FILE_CONTENTS_REQUIRED is on of the flags, then the contents for these files will be cached as efficiently as possible so that calls to fetchRemoteContents(org.eclipse.core.resources.IFile, org.eclipse.core.runtime.IProgressMonitor) will also not need to contact the server. This may not be possible for all context providers, so clients cannot assume that the above mentioned methods will not be long running. It is still advisable for clients to call refresh(org.eclipse.core.resources.mapping.ResourceTraversal[], int, org.eclipse.core.runtime.IProgressMonitor) with as much details as possible since, in the case where a provider is optimized, performance will be much better.

Parameters:
traversals - the resource traversals that indicate which resources are to be refreshed
flags - additional refresh behavior. For instance, if FILE_CONTENTS_REQUIRED is one of the flags, this indicates that the client will be accessing the contents of the files covered by the traversals. NONE should be used when no additional behavior is required
monitor - a progress monitor, or null if progress reporting is not desired
Throws:
CoreException - if the refresh fails. Reasons include:
  • The server could not be contacted for some reason.

Eclipse Platform
Release 3.5

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire