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

  




 

 


org.eclipse.emf.workspace.util
Class WorkspaceSynchronizer


java.lang.Object
  extended by 
org.eclipse.emf.workspace.util.WorkspaceSynchronizer

public final class WorkspaceSynchronizer
extends Object

A utility object that listens to workspace resource changes to synchronize the state of an EMF resource set with the workspace.

The default behaviour on workspace resource deletions is to unload the corresponding EMF resource. The default behaviour on resource changes is to unload and reload the corresponding EMF resource, unless the resource path has changed (by move or rename), in which case it is simply unloaded.

To customize the behaviour of the synchronizer, initialize it with a delegate that provides the required behaviour. For example, it might be more user-friendly to prompt the user before taking drastic measures.

Whether implemented by a delegate or not, the synchronization algorithm is invoked asynchronously (as a job) and in a read-only transaction on the synchronizer's editing domain. This ensures timely completion of the workspace's event dispatching and exclusive access to the resource set according to the transaction protocol. Also, the job is scheduled on the workspace rule, so that the delegate call-backs are free to read or modify any resources that they may need.


Nested Class Summary
static interface WorkspaceSynchronizer.Delegate
          Call-back interface for an object to which a WorkspaceSynchronizer delegates the algorithms for handling different kinds of resource changes.
 
Constructor Summary
WorkspaceSynchronizer ( TransactionalEditingDomain domain)
          Initializes me with the editing domain for which I synchronize resources, using the default change-handling behaviour.
WorkspaceSynchronizer ( TransactionalEditingDomain domain, WorkspaceSynchronizer.Delegate delegate)
          Initializes me with the editing domain for which I synchronize resources, using the specified delegate to handle resource changes.
 
Method Summary
 void dispose ()
          Disposes me, in particular disconnecting me from the workspace so that I no longer respond to resource change events.
  TransactionalEditingDomain getEditingDomain ()
          Queries the editing domain whose resources I synchronize with the workspace.
static  IFile getFile ( Resource resource)
          Obtains the workspace file corresponding to the specified resource, if it has a platform-resource URI.
static  IFile getUnderlyingFile ( Resource resource)
          Obtains the workspace file underlying the specified resource.
 
Methods inherited from class java.lang. Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WorkspaceSynchronizer

public WorkspaceSynchronizer(
TransactionalEditingDomain domain)
Initializes me with the editing domain for which I synchronize resources, using the default change-handling behaviour.

I immediately start listening for workspace resource changes.

Parameters:
domain - my domain (must not be null)

WorkspaceSynchronizer

public WorkspaceSynchronizer(
TransactionalEditingDomain domain,
                             
WorkspaceSynchronizer.Delegate delegate)
Initializes me with the editing domain for which I synchronize resources, using the specified delegate to handle resource changes.

I immediately start listening for workspace resource changes.

Parameters:
domain - my domain (must not be null)
delegate - the delegate that handles my resource changes, or null to get the default behaviour
Method Detail

getEditingDomain

public 
TransactionalEditingDomain getEditingDomain()
Queries the editing domain whose resources I synchronize with the workspace.

Returns:
my editing domain

dispose

public void dispose()
Disposes me, in particular disconnecting me from the workspace so that I no longer respond to resource change events.


getFile

public static 
IFile getFile(
Resource resource)
Obtains the workspace file corresponding to the specified resource, if it has a platform-resource URI. Note that the resulting file, if not null, may nonetheless not actually exist (as the file is just a handle).

Note that, if the resource is in an archive (such as a ZIP file) then it does not map to a workspace file. In this case, however, the workspace file (if any) corresponding to the containing archive can be obtained via the getUnderlyingFile(Resource) method.

Parameters:
resource - an EMF resource
Returns:
the corresponding workspace file, or null if the resource's URI is not a platform-resource URI
See Also:
getUnderlyingFile(Resource)

getUnderlyingFile

public static 
IFile getUnderlyingFile(
Resource resource)
Obtains the workspace file underlying the specified resource. If the resource has an archive scheme, the authority is considered instead. If the URI has a file scheme, it's looked up in the workspace, just as in the getFile(Resource) method. Otherwise, a platform scheme is assumed.

Note that the resulting file, if not null, may nonetheless not actually exist (as the file is just a handle).

Parameters:
resource - an EMF resource
Returns:
the underlying workspace file, or null if the resource's URI is not a platform-resource URI
Since:
1.2
See Also:
getFile(Resource)

Copyright 2002, 2007 IBM Corporation and others.
All Rights Reserved.


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