83 lines
2.5 KiB
Java
83 lines
2.5 KiB
Java
package org.gcube.portlets.widgets.githubconnector.server.git;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import org.apache.log4j.Logger;
|
|
import org.eclipse.egit.github.core.Repository;
|
|
import org.gcube.portlets.widgets.githubconnector.shared.exception.ServiceException;
|
|
import org.gcube.portlets.widgets.githubconnector.shared.git.GitHubRepository;
|
|
import org.gcube.portlets.widgets.githubconnector.shared.git.GitHubUser;
|
|
|
|
public class GitHubRepositoryBuilder {
|
|
private static Logger logger = Logger
|
|
.getLogger(GitHubRepositoryBuilder.class);
|
|
|
|
/**
|
|
*
|
|
* @param repository
|
|
* @return
|
|
* @throws ServiceException
|
|
*/
|
|
public static GitHubRepository build(Repository repository)
|
|
throws ServiceException {
|
|
try {
|
|
if (repository != null) {
|
|
if (repository.getOwner() != null) {
|
|
GitHubUser gitHubUser = new GitHubUser(repository
|
|
.getOwner().getId(), repository.getOwner()
|
|
.getName(), repository.getOwner().getLogin(),
|
|
repository.getOwner().getCompany(), repository
|
|
.getOwner().getLocation(), repository
|
|
.getOwner().getUrl(), repository.getOwner()
|
|
.getEmail());
|
|
|
|
GitHubRepository gitHubRepository = new GitHubRepository(
|
|
repository.getId(), repository.getName(),
|
|
gitHubUser, repository.getDescription(),
|
|
repository.getGitUrl(), repository.getWatchers(),
|
|
repository.getCreatedAt(),
|
|
repository.getUpdatedAt());
|
|
return gitHubRepository;
|
|
} else {
|
|
logger.error("Invalid owner for repository: "
|
|
+ repository.getName());
|
|
throw new ServiceException("Invalid owner for repository: "
|
|
+ repository.getName());
|
|
}
|
|
} else {
|
|
logger.error("Invalid repository: null");
|
|
throw new ServiceException("Invalid repository: null");
|
|
|
|
}
|
|
|
|
} catch (Throwable e) {
|
|
e.printStackTrace();
|
|
logger.error(e.getLocalizedMessage());
|
|
throw new ServiceException(e.getLocalizedMessage(), e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param repositories
|
|
* @return
|
|
* @throws ServiceException
|
|
*/
|
|
public static ArrayList<GitHubRepository> build(
|
|
List<Repository> repositories) throws ServiceException {
|
|
if (repositories != null) {
|
|
ArrayList<GitHubRepository> gitHubRepositories = new ArrayList<>();
|
|
for (Repository repository : repositories) {
|
|
GitHubRepository gitHubRepository = build(repository);
|
|
gitHubRepositories.add(gitHubRepository);
|
|
}
|
|
return gitHubRepositories;
|
|
} else {
|
|
logger.error("Invalid list of repositories: null!");
|
|
throw new ServiceException("Invalid list of repositories: null!");
|
|
}
|
|
|
|
}
|
|
}
|