/*******************************************************************************
 * Copyright (c) 2005, 2008 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:
 *    Kentarou FUKUDA - initial API and implementation
 *******************************************************************************/

package org.eclipse.actf.visualization.eval;

import org.w3c.dom.Document;

public interface ICheckTarget {
	
	Document getTargetDocument(); // for all

	String getTargetUrl(); // for all

	void setAdditionalDocument(String key, Document document);

	Document getAdditionalDocument(String key);

}
