package com.mobilesorcery.sdk.core.build; import com.mobilesorcery.sdk.core.Pair; /** * An interface for allowing plugins to define their own {@code IBuildStepFactory}s * @author mattias.bybro@mosync.com * */ public interface IBuildStepFactoryExtension { enum Position { NONE, BEFORE, AFTER }; public static final String EXTENSION_ID = "com.mobilesorcery.sdk.build.steps"; /** * Creates a new factory. * @return */ IBuildStepFactory createFactory(); /** * Returns where the default factory should be inserted; * either {@link Position#BEFORE} or {@link Position#AFTER} * the factory represented by the returned {@code String}. * @return {@link Position#NONE} if this factory * has no default position. Returning {@code null} as the * second argument indicates either 'first' position * (if the position is {@link Position#BEFORE}) or * 'last' position (if the position is {@link Position#AFTER}). */ Pair<Position, String> getDefaultPosition(); }