Eclipse Platform
2.0

org.eclipse.compare
Class ZipFileStructureCreator

java.lang.Object
  |
  +--org.eclipse.compare.ZipFileStructureCreator
All Implemented Interfaces:
IStructureCreator

public class ZipFileStructureCreator
extends Object
implements IStructureCreator

This implementation of the IStructureCreator interface makes the contents of a zip archive available as a hierarchical structure of IStructureComparators.

It is used when comparing the internal structure of a zip archive.

Since:
2.0

Constructor Summary
ZipFileStructureCreator()
          Create a new ZipFileStructureCreator.
ZipFileStructureCreator(String title)
          Create a new ZipFileStructureCreator with the given title.
 
Method Summary
 boolean canRewriteTree()
          Returns false since this IStructureCreator cannot rewrite the diff tree in order to fold certain combinations of additons and deletions.
 boolean canSave()
          Returns false since we cannot update a zip archive.
 String getContents(Object o, boolean ignoreWhitespace)
          Returns the contents of the given node as a string for the purpose of performing a content comparison only (that is the string will not be visible in the UI).
 String getName()
          Returns a descriptive name which can be used in the UI of the StructureDiffViewer.
 IStructureComparator getStructure(Object input)
          Creates a tree structure consisting of IStructureComparators from the given object and returns its root object.
 IStructureComparator locate(Object path, Object source)
          Creates the single node specified by path from the given input object.
 void rewriteTree(Differencer diff, IDiffContainer root)
          Empty implementation since this IStructureCreator cannot rewrite the diff tree in order to fold certain combinations of additons and deletions.
 void save(IStructureComparator structure, Object input)
          Called whenever a copy operation has been performed on a tree node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ZipFileStructureCreator

public ZipFileStructureCreator()
Create a new ZipFileStructureCreator.


ZipFileStructureCreator

public ZipFileStructureCreator(String title)
Create a new ZipFileStructureCreator with the given title. The title is returned by the method getName().

Parameters:
title - the title of this strcuture creator
Method Detail

getName

public String getName()
Description copied from interface: IStructureCreator
Returns a descriptive name which can be used in the UI of the StructureDiffViewer.

Specified by:
getName in interface IStructureCreator
Returns:
a descriptive name for this IStructureCreator

getStructure

public IStructureComparator getStructure(Object input)
Description copied from interface: IStructureCreator
Creates a tree structure consisting of IStructureComparators from the given object and returns its root object. Implementing this method typically involves parsing the input object. In case of an error (e.g. a parsing error) the value null is returned.

Specified by:
getStructure in interface IStructureCreator
Parameters:
input - the object from which to create the tree of IStructureComparator
Returns:
the root node of the structure or null in case of error

getContents

public String getContents(Object o,
                          boolean ignoreWhitespace)
Description copied from interface: IStructureCreator
Returns the contents of the given node as a string for the purpose of performing a content comparison only (that is the string will not be visible in the UI). If ignoreWhitespace is true all character sequences considered whitespace should be removed from the returned string.

Specified by:
getContents in interface IStructureCreator
Parameters:
o - the node for which to return a string representation
ignoreWhitespace - if true the returned string should not contain whitespace
Returns:
the string contents of the given node

canSave

public boolean canSave()
Returns false since we cannot update a zip archive.

Returns:
false

save

public void save(IStructureComparator structure,
                 Object input)
Called whenever a copy operation has been performed on a tree node. This implementation throws an AssertionFailedException since we cannot update a zip archive.

Specified by:
save in interface IStructureCreator
Parameters:
structure - the node for which to save the new content
input - the object from which the structure tree was created in getStructure

locate

public IStructureComparator locate(Object path,
                                   Object source)
Description copied from interface: IStructureCreator
Creates the single node specified by path from the given input object. In case of an error (e.g. a parsing error) the value null is returned. This method is similar to getStructure but in contrast to getStructure only a single node without any children must be returned. This method is used in the ReplaceWithEditionDialog to locate a sub element (e.g. a method) within an input object (e.g. a file containing source code).

One (not optimized) approach to implement this method is calling getStructure(input) to build the full tree, and then finding that node within the tree that is specified by path.

The syntax of path is not specified, because it is treated by the compare subsystem as an opaque entity and is not further interpreted. Clients using this functionality will pass a value of path to the selectEdition method of ReplaceWithEditionDialog and will receive this value unchanged as an argument to locate.

Specified by:
locate in interface IStructureCreator
Parameters:
path - specifies a sub object within the input object
source - the object from which to create the IStructureComparator
Returns:
the single node specified by path or null
See Also:
EditionSelectionDialog.selectEdition(org.eclipse.compare.ITypedElement, org.eclipse.compare.ITypedElement[], java.lang.Object)

canRewriteTree

public boolean canRewriteTree()
Returns false since this IStructureCreator cannot rewrite the diff tree in order to fold certain combinations of additons and deletions.

Note: this method is for internal use only. Clients should not call this method.

Returns:
false

rewriteTree

public void rewriteTree(Differencer diff,
                        IDiffContainer root)
Empty implementation since this IStructureCreator cannot rewrite the diff tree in order to fold certain combinations of additons and deletions.

Note: this method is for internal use only. Clients should not call this method.


Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.