/******************************************************************************* * Copyright (c) 2012-2015 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.builder.dto; import org.eclipse.che.api.project.shared.dto.ProjectDescriptor; import org.eclipse.che.dto.shared.DTO; import java.util.List; import java.util.Map; /** * Base request. * * @author andrew00x */ @DTO public interface BaseBuilderRequest { long getId(); void setId(long id); BaseBuilderRequest withId(long id); /** * Location of source code for build. It is required to have {@link org.eclipse.che.api.core.util.DownloadPlugin} which supports such type * of URL. * * @see org.eclipse.che.api.core.util.DownloadPlugin#download(String, java.io.File, org.eclipse.che.api.core.util.DownloadPlugin.Callback) */ String getSourcesUrl(); BaseBuilderRequest withSourcesUrl(String url); void setSourcesUrl(String url); /** * Name of which should be used for build. Client should use method {@link org.eclipse.che.api.builder.internal.SlaveBuilderService#availableBuilders()} * to get list of available builders. */ String getBuilder(); BaseBuilderRequest withBuilder(String builder); void setBuilder(String builder); /** * Get build timeout in seconds. If build is running longer then this time {@link org.eclipse.che.api.builder.internal.Builder} must * terminate the build. */ long getTimeout(); void setTimeout(long time); BaseBuilderRequest withTimeout(long time); /** * Build targets, e.g. "clean", "compile", ... . Supported targets depend on builder implementation. Builder uses default targets if * this parameter is not provided by client. */ List<String> getTargets(); BaseBuilderRequest withTargets(List<String> targets); void setTargets(List<String> targets); /** * Optional parameters for builder. Supported options depend on builder implementation. Builder may provide own set of options. User * specified options have preference over builder's default options. */ Map<String, String> getOptions(); BaseBuilderRequest withOptions(Map<String, String> options); void setOptions(Map<String, String> options); /** Name of workspace which the sources are belong. */ String getWorkspace(); BaseBuilderRequest withWorkspace(String workspace); void setWorkspace(String workspace); /** Name of project which represents sources on the ide side. */ String getProject(); BaseBuilderRequest withProject(String project); void setProject(String project); ProjectDescriptor getProjectDescriptor(); void setProjectDescriptor(ProjectDescriptor project); BaseBuilderRequest withProjectDescriptor(ProjectDescriptor project); boolean isIncludeDependencies(); void setIncludeDependencies(boolean includeDependencies); BaseBuilderRequest withIncludeDependencies(boolean includeDependencies); String getProjectUrl(); BaseBuilderRequest withProjectUrl(String url); void setProjectUrl(String url); String getUserId(); BaseBuilderRequest withUserId(String userId); void setUserId(String userId); }