package org.codefaces.core.models;
import java.util.Collection;
import org.eclipse.core.runtime.IPath;
public class RepoProject extends RepoFolder {
private static final String AT = "@";
private static final String ROOT = "root";
private static String buildProjectName(RepoResource resource) {
StringBuilder nameBuilder = new StringBuilder();
nameBuilder.append(isRoot(resource) ? ROOT : resource.getPath()
.toString().substring(1).trim());
nameBuilder.append(AT);
nameBuilder.append(getRepo(resource).getUrl());
return nameBuilder.toString();
}
private static Repo getRepo(RepoResource resource) {
return resource.getRoot().getRepo();
}
private static boolean isRoot(RepoResource resource) {
return resource.getType() == RepoResourceType.FOLDER_ROOT;
}
private final RepoFolder wrappedfolder;
public RepoProject(RepoFolder wrappedfolder) {
super(null, null, null, null, RepoResourceType.PROJECT);
this.wrappedfolder = wrappedfolder;
this.id = this.name = buildProjectName(wrappedfolder);
}
@Override
public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
return super.getAdapter(adapter);
}
@Override
public Collection<RepoResource> getChildren() {
return getWrappedFolder().getChildren();
}
@Override
protected RepoFolderInfo getInfo() {
return getWrappedFolder().getInfo();
}
@Override
public RepoResource getParent() {
return getWrappedFolder().getParent();
}
@Override
public IPath getPath() {
return getWrappedFolder().getPath();
}
@Override
public Object getProperty(String key) {
return getWrappedFolder().getProperty(key);
}
@Override
public RepoFolderRoot getRoot() {
return getWrappedFolder().getRoot();
}
private RepoFolder getWrappedFolder() {
return wrappedfolder;
}
@Override
public boolean hasChildren() {
return getWrappedFolder().hasChildren();
}
@Override
public void setProperty(String key, Object value) {
getWrappedFolder().setProperty(key, value);
}
}