blob: 200492b638c465cbd3633cf849240723dfa5cdd8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Tasktop Technologies 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:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.bugzilla.deprecated;
import org.eclipse.compare.structuremergeviewer.IStructureComparator;
import org.eclipse.compare.structuremergeviewer.IStructureCreator;
import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData;
/**
* This implementation of the <code>IStructureCreator</code> interface makes the contents of a <code>BugReport</code>
* object available as a hierarchical structure of <code>IStructureComparator</code>s.
* <p>
* It is used when comparing a modified bug report to the one on the corresponding server.
*
* @author Rob Elves
*/
public class BugzillaCompareStructureCreator implements IStructureCreator {
/**
* Create a new BugzillaStructureCreator.
*/
public BugzillaCompareStructureCreator() {
super();
}
public String getName() {
return "Bugzilla Structure Creator";
}
public IStructureComparator getStructure(Object input) {
if (input instanceof RepositoryTaskData) {
RepositoryTaskData bugReport = (RepositoryTaskData) input;
return BugzillaCompareNode.parseBugReport(bugReport);
} else {
return null;
}
}
public IStructureComparator locate(Object path, Object input) {
return null;
}
public String getContents(Object node, boolean ignoreWhitespace) {
if (node instanceof BugzillaCompareNode) {
String s = ((BugzillaCompareNode) node).getValue();
if (ignoreWhitespace) {
s = s.trim();
}
return s;
}
return null;
}
/**
* Called whenever a copy operation has been performed on a tree node. This implementation throws an
* <code>AssertionFailedException</code> since we cannot update a bug report object.
*
* @param structure
* the node for which to save the new content
* @param input
* the object from which the structure tree was created in <code>getStructure</code>
*/
public void save(IStructureComparator node, Object input) {
// ignore
}
}