net.refractions.udig.catalog
Interface IResolveDelta


public interface IResolveDelta

Constants used to communicate Catalog Deltas.

For those familiar with IResourceChangeEvent and IResourceDelta from eclipse development there is one important addition. The constant REPLACE indicates a reaname, or substiution, you will need to replace any references you have to the oldObject with the newObject.

For "bit mask" style interation please use: EnumSet.of(Kind.ADDED, Kind.REPLACED)

Since:
0.6.0
Author:
Jody Garnett

Nested Class Summary
static class IResolveDelta.Kind
          Kind of Delta, used to indicate change.
 
Field Summary
static java.util.List<IResolveDelta> NO_CHILDREN
          List indicating no children are present
 
Method Summary
 void accept(IResolveDeltaVisitor visitor)
          Accepts the given visitor.
 java.util.List<IResolveDelta> getChildren()
          Resource deltas for all added, removed, changed, or replaced.
 java.util.List<IResolveDelta> getChildren(java.util.EnumSet<IResolveDelta.Kind> kindMask)
          Finds and returns the delta information for a given resource.
 IResolveDelta.Kind getKind()
          Returns the kind of this delta.
 IResolve getNewResolve()
          For replacement (REPLACE), this handle describes the resource in the "after" state.
 java.lang.Object getNewValue()
          If getKind()==Kind.CHANGED this method returns the new value of the item changed for example the new bounds of the IGeoResource.
 java.lang.Object getOldValue()
          If getKind()==Kind.CHANGED this method returns the old value of the item changed for example the old bounds of the IGeoResource.
 IResolve getResolve()
          Returns a handle for the affected handle.
 

Field Detail

NO_CHILDREN

static final java.util.List<IResolveDelta> NO_CHILDREN
List indicating no children are present

Method Detail

getKind

IResolveDelta.Kind getKind()
Returns the kind of this delta.

Normally, one of ADDED, REMOVED, CHANGED or REPLACED.

This set is still open, during shutdown we may throw a few more kinds around. Eclipse makes use of PHANTOM, and NON_PHANTOM not sure we care

Returns:
the kind of this resource delta
See Also:
Kind.ADDED, Kind.REMOVED, Kind.CHANGED, Kind.REPLACED

accept

void accept(IResolveDeltaVisitor visitor)
            throws java.io.IOException
Accepts the given visitor.

The only kinds of resource delta that our visited are ADDED, REMOVED, CHANGED and REPLACED.

This is a convenience method, equivalent to accepts( visitor, IService.NONE )

Parameters:
visitor -
Throws:
CoreException
java.io.IOException

getChildren

java.util.List<IResolveDelta> getChildren()
Resource deltas for all added, removed, changed, or replaced.

This is a short cut for:


  finally List list = new ArrayList();
  accept( IServiceDeltaVisitor() {
  public boolean visit(IResolveDelta delta) {
          switch (delta.getKind()) {
          case IDelta.ADDED :
          case IDelta.REMOVED :
          case IDelta.CHANGED :
          case IDelta.REPLACED :
              list.add( delta );
          default: // ignore    
          }
      return true;
      }
  });
  return list.toArray();
 


getChildren

java.util.List<IResolveDelta> getChildren(java.util.EnumSet<IResolveDelta.Kind> kindMask)
Finds and returns the delta information for a given resource.

Returns:
Array of IGeoResourceDelta

getResolve

IResolve getResolve()
Returns a handle for the affected handle.

For additions (ADDED), this handle describes the newly-added resolve; i.e., the one in the "after" state.

For changes (CHANGED), this handle also describes the resource in the "after" state.

For removals (REMOVED), this handle describes the resource in the "before" state. Even though this handle not normally exist in the current workspace, the type of resource that was removed can be determined from the handle.

For removals (REPLACE), this handle describes the resource in the "before" state. The new handle can be determined with getNewResolve().

Returns:
the affected resource (handle)

getNewResolve

IResolve getNewResolve()
For replacement (REPLACE), this handle describes the resource in the "after" state. The old handle can be determined with getResolve().

Returns:
The new resolve replacing the affected handle.

getNewValue

java.lang.Object getNewValue()
If getKind()==Kind.CHANGED this method returns the new value of the item changed for example the new bounds of the IGeoResource. Otherwise it will return null.

Returns:
If getKind()==Kind.CHANGED this method returns the new value of the item changed, otherwise it will return null.

getOldValue

java.lang.Object getOldValue()
If getKind()==Kind.CHANGED this method returns the old value of the item changed for example the old bounds of the IGeoResource. Otherwise it will return null.

Returns:
If getKind()==Kind.CHANGED this method returns the old value of the item changed, otherwise it will return null.