/*******************************************************************************
* 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.plugin.github.shared;
import org.eclipse.che.commons.annotation.Nullable;
import org.eclipse.che.dto.shared.DTO;
/**
* GitHub repository, taken from API v3.
*
* @author <a href="mailto:azhuleva@exoplatform.com">Ann Shumilova</a>
*/
@DTO
public interface GitHubRepository {
/**
* Get repository's name.
*
* @return {@link String} name
*/
String getName();
void setName(String name);
/**
* Get repository's location.
*
* @return {@link String} url
*/
String getUrl();
void setUrl(String url);
/**
* Get repository's home page.
*
* @return {@link String} home page
*/
String getHomepage();
void setHomepage(String homePage);
/**
* Get the number of repository's forks.
*
* @return forks
*/
int getForks();
void setForks(int forks);
/**
* Get repository's language.
*
* @return {@link String} language
*/
String getLanguage();
void setLanguage(String language);
/**
* Get fork state.
*
* @return {@link Boolean} <code>true</code> id forked
*/
boolean isFork();
void setFork(boolean isFork);
/**
* Get the number of repository's watchers.
*
* @return {@link Integer} the number of watchers
*/
int getWatchers();
void setWatchers(int watchers);
/**
* Get private state of the repository.
*
* @return {@link Boolean} private state of the repository
*/
boolean isPrivateRepo();
void setPrivateRepo(boolean isPrivateRepo);
/**
* Get repository's size.
*
* @return {@link Integer} size
*/
int getSize();
void setSize(int size);
/**
* Get repository's description.
*
* @return {@link String} description
*/
String getDescription();
void setDescription(String description);
/**
* Get SSH URL.
*
* @return {@link String} SSH URL
*/
String getSshUrl();
void setSshUrl(String sshUrl);
/**
* Get HTML URL.
*
* @return {@link String} HTML URL
*/
String getHtmlUrl();
void setHtmlUrl(String htmlUrl);
/**
* Get updated date.
*
* @return {@link String}
*/
String getUpdatedAt();
void setUpdatedAt(String updatedAt);
/**
* Get Git URL.
*
* @return {@link String} Git URL
*/
String getGitUrl();
void setGitUrl(String gitUrl);
/**
* Get whether repository has wiki.
*
* @return {@link Boolean} <code> true</code> - has wiki
*/
boolean isHasWiki();
void setHasWiki(boolean isHasWiki);
/**
* Get clone URL.
*
* @return {@link String} clone URL
*/
String getCloneUrl();
void setCloneUrl(String cloneUrl);
/**
* Get SVN URL.
*
* @return {@link String} SVN URL
*/
String getSvnUrl();
void setSvnUrl(String svnUrl);
/**
* Get the number of opened issues.
*
* @return {@link Integer} number of opened issues
*/
int getOpenedIssues();
void setOpenedIssues(int openedIssues);
/**
* Get repository's created date.
*
* @return {@link String} created date
*/
String getCreatedAt();
void setCreatedAt(String createdAt);
/**
* Get repository's pushed date.
*
* @return {@link String} pushed date
*/
String getPushedAt();
void setPushedAt(String pushedAt);
/**
* Get whether repository has downloads.
*
* @return {@link Boolean} <code> true</code> - has downloads
*/
boolean isHasDownloads();
void setHasDownloads(boolean isHasDownloads);
/**
* Get the repository parent.
* Might return null if user tried to retrieve the full repository list.
* If request was done to retrieve the specific repository then {@link #getParent()} will return none null value.
*
* @return the parent repository.
*/
@Nullable
GitHubRepository getParent();
void setParent(GitHubRepository parent);
/**
* Get whether repository has issues.
*
* @return {@link Boolean} <code> true</code> - has issues
*/
boolean isHasIssues();
void setHasIssues(boolean isHasIssues);
/**
* Get repository's owner login.
*
* @return {@link String} owner login
*/
String getOwnerLogin();
void setOwnerLogin(String ownerLogin);
}