blob: 4d2c3ce61a0c8374ae70a6768dbba06bdb31c277 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.tester.impl.testcommands;
import org.eclipse.epf.library.edit.validation.DependencyInfoMgr;
import org.eclipse.epf.library.edit.validation.Tracer;
import org.eclipse.epf.library.tester.iface.TCExeReply;
import org.eclipse.epf.library.tester.impl.TestCommandImpl;
import org.eclipse.epf.library.tester.impl.TestCommandMgr;
import org.w3c.dom.Element;
/**
* A test command class
*
* @author Weiping Lu
* @since 1.0
*
*/
public class TCCircularDependencyCheck extends TestCommandImpl {
public void parse(Element element) {
super.parse(element);
setAttribute(AT_ErrorCount, element.getAttribute(AT_ErrorCount));
setAttribute(AT_CircularElementCount, element.getAttribute(AT_CircularElementCount));
}
public TCExeReply execute() {
int errorCount = parseInteger(getAttribute(AT_ErrorCount), 0);
int circularElementCount = parseInteger(getAttribute(AT_CircularElementCount), 0);
final TestCommandMgr owner = getOwner();
Tracer tracer = new Tracer() {
public void trace(String line) {
owner.trace(line);
}
};
DependencyInfoMgr infoMgr = new DependencyInfoMgr(owner.getCurrentBaseLib());
DependencyInfoMgr.CheckResult checkResult = infoMgr.checkCircularDependnecy(tracer);
if (checkResult.getErrorCount() != errorCount ||
checkResult.getCircularElementCount() != circularElementCount) {
String msg = "checkResult.getErrorCount() = " + checkResult.getErrorCount() + "\n";
msg += "checkResult.getCircularElementCount() = " + checkResult.getCircularElementCount();
owner.trace(msg);
return new TCExeReplyImpl(msg, false);
}
return null;
}
}