/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * 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: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.api.core.model.factory; import org.eclipse.che.api.core.model.workspace.WorkspaceConfig; /** * Defines the contract for the factory instance. * * @author Anton Korneta */ public interface Factory { /** * Returns the identifier of this factory instance, * it is mandatory and unique. */ String getId(); /** * Returns the version of this factory instance, * it is mandatory. */ String getV(); /** * Returns a name of this factory instance, * the name is unique for creator. */ String getName(); /** * Returns creator of this factory instance. */ Author getCreator(); /** * Returns a workspace configuration of this factory instance, * it is mandatory for every factory instance. */ WorkspaceConfig getWorkspace(); /** * Returns restrictions of this factory instance. */ Policies getPolicies(); /** * Returns factory button for this instance. */ Button getButton(); /** * Returns IDE for this factory instance. */ Ide getIde(); }