/* 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(); }