/* 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;
import java.util.SortedMap;
import com.mobilesorcery.sdk.profiles.IProfile;
/**
* <p>An interface representing a 'build variant' - each
* build variant will produce a different build result,
* typically the location of the build result should depend
* only on the build variant</p>
* @author Mattias Bybro, mattias.bybro@purplescout.se
*
*/
public interface IBuildVariant {
/**
* Returns the configuration of this variant. (As a string identifier).
* @return
*/
public String getConfigurationId();
/**
* Returns the {@link IProfile} of this variant.
* @return
*/
public IProfile getProfile();
/**
* <p>Returns the set of specifiers used for this variant.</p>
* <p>A specifier allows for specialized builds where a separate binary
* needs to be produced for whatever reason.</p>
* <p>Examples of potential specifiers:
* <ul>
* <li>Locale - if some aspect of the binary needs to be different based on language, etc</li>
* <li>Emulation - the iPhone Simulator needs a completely different binary than used by the actual device</li>
* </ul>
* </p>
* @return
*/
public SortedMap<String, String> getSpecifiers();
}