blob: 441113c442defd7e4317e30f4cdb08cdbda807ab [file] [log] [blame]
/*
* <copyright>
*
* Copyright (c) 2005-2006 Sven Efftinge 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:
* Sven Efftinge - Initial API and implementation
*
* </copyright>
*/
package org.eclipse.gmf.internal.xpand;
import java.io.IOException;
import java.io.Reader;
import org.eclipse.gmf.internal.xpand.model.XpandResource;
import org.eclipse.gmf.internal.xpand.xtend.ast.XtendResource;
/**
* FIXME no much sense to depend on File here, it's only builder who cares about files
* TODO describe contract - when returns null
*/
public interface ResourceManager {
XtendResource loadXtendResource(String fullyQualifiedName);
XpandResource loadXpandResource(String fullyQualifiedName);
/**
* Returns an array of resolutions, in the order from newest to oldest.
* This is to enable one template to partially override only a subset of parent templates.
*
* @return never return <code>null</code> or an empty array, throw exception instead
* @throws IOException in case resource can't be read. Throw {@link java.io.FileNotFoundException} to indicate resource was not found.
*/
Reader[] resolveMultiple(String fullyQualifiedName, String extension) throws IOException;
}