/*******************************************************************************
* 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.project.shared.dto;
import org.eclipse.che.dto.shared.DTO;
import com.wordnik.swagger.annotations.ApiModel;
import com.wordnik.swagger.annotations.ApiModelProperty;
import java.util.List;
/**
* Reference to the IDE Project.
*
* @author andrew00x
*/
@DTO
@ApiModel(description = "Short information about project, it doesn't contain any project attributes.")
public interface ProjectReference {
/** Gets name of project. */
@ApiModelProperty(value = "Name of the project", position = 1)
String getName();
/** Sets name of project. */
void setName(String name);
ProjectReference withName(String name);
//
/** Gets path of project. */
@ApiModelProperty(value = "Full path of the project", position = 2)
String getPath();
/** Sets path of project. */
void setPath(String path);
ProjectReference withPath(String path);
//
/** Gets unique ID of type of project. */
@ApiModelProperty(value = "Unique ID of project's type", position = 3)
String getType();
/** Sets unique ID of type of project. */
void setType(String type);
ProjectReference withType(String id);
//
/** Gets display name of type of project. */
@ApiModelProperty(value = "Display name of project's type", position = 4)
String getTypeName();
/** Sets display name of type of project. */
void setTypeName(String typeName);
ProjectReference withTypeName(String typeName);
//
/** Gets URL for getting detailed information about project. */
@ApiModelProperty(value = "URL for getting detailed information about the project", position = 5)
String getUrl();
/** Sets URL for getting detailed information about project. */
void setUrl(String url);
ProjectReference withUrl(String url);
//
/** Gets URL for opening project in Codenvy IDE. */
@ApiModelProperty(value = "URL for opening project in Codenvy IDE", position = 6)
String getIdeUrl();
/** Sets URL for opening project in Codenvy IDE. */
void setIdeUrl(String url);
ProjectReference withIdeUrl(String url);
//
/** Gets id of workspace this project belongs to. */
@ApiModelProperty(value = "ID of workspace which the project belongs to", position = 7)
String getWorkspaceId();
/** Sets id of workspace this project belongs to. */
void setWorkspaceId(String id);
ProjectReference withWorkspaceId(String id);
//
/** Gets name of workspace this project belongs to. */
@ApiModelProperty(value = "Name of workspace which the project belongs to", position = 8)
String getWorkspaceName();
/** Sets name of workspace this project belongs to. */
void setWorkspaceName(String name);
ProjectReference withWorkspaceName(String name);
//
/** Gets project visibility, e.g. private or public. */
@ApiModelProperty(value = "Visibility of the project", allowableValues = "public,private", position = 9)
String getVisibility();
/** Set project visibility, e.g. private or public. */
void setVisibility(String visibility);
ProjectReference withVisibility(String visibility);
//
/** Gets creation date of project. */
@ApiModelProperty(value = "Time that the project was created or -1 if creation time in unknown", dataType = "long", position = 10)
long getCreationDate();
/** Sets creation date of project. */
void setCreationDate(long date);
ProjectReference withCreationDate(long date);
//
/** Gets modification date of project. */
@ApiModelProperty(value = "Time that the project was last modified or -1 if modification time date in unknown",
dataType = "long", position = 11)
long getModificationDate();
/** Sets modification date of project. */
void setModificationDate(long date);
ProjectReference withModificationDate(long date);
//
/** Gets optional description of project. */
@ApiModelProperty(value = "Optional description of the project", position = 12)
String getDescription();
/** Sets optional description of project. */
void setDescription(String description);
ProjectReference withDescription(String description);
//
/** Provides information about project errors. If project doesn't have any error this field is empty. */
@ApiModelProperty(value = "Optional information about project errors. If project doesn't have any error this field is empty",
position = 13)
List<ProjectProblem> getProblems();
/** @see #getProblems */
void setProblems(List<ProjectProblem> problems);
ProjectReference withProblems(List<ProjectProblem> problems);
}