/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
package com.mobilesorcery.sdk.core.templates;
import java.io.IOException;
import java.util.Map;
/**
* In lieu of the sparsely documented eclipse templates...
* @author Mattias
*
*/
public interface ITemplate {
/**
* Returns the user-friendly name of this template
* @return
*/
String getDescription();
/**
* Returns the id of this template
*/
String getId();
/**
* Returns a document with resolved parameters
* @param map The map containing key-value pairs
* to be inserted instead of <i>${key}</i> in the document.
* The map may be null
*
*/
String resolve(Map<String, String> map) throws IOException;
/**
* Returns the (user-friendly) name of this template.
* @return
*/
String getName();
/**
* Returns the project-relative path of the resolved template
* (eg "main.cpp")
* @return
*/
String getPathToResolvedTemplate();
Map<String, String> getSettings();
}