package de.twenty11.skysail.server.ext.jgit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.restlet.data.Form;
import org.restlet.resource.Get;
import de.twenty11.skysail.common.responses.SkysailResponse;
import de.twenty11.skysail.common.responses.SuccessResponse;
import de.twenty11.skysail.common.selfdescription.ResourceDetails;
import de.twenty11.skysail.server.core.restlet.ListServerResource2;
/**
* Restlet Root Resource for dbViewer application.
*
*/
public class MyRootResource<T extends ResourceDetails> extends ListServerResource2<ResourceDetails> {
public class JGitResourceDetails extends ResourceDetails {
public JGitResourceDetails(String path, String text, String finder, String desc) {
super(path, text, finder, desc);
}
@Override
public Map<String, Object> getContent() {
Map<String, Object> result = new HashMap<String, Object>();
result.put("desc", "Defines a local git repository");
return result;
}
}
public MyRootResource() {
setName("jgit root resource");
setDescription("The root resource of the jgit application");
}
@Override
@Get("html|json|csv")
public SkysailResponse<List<ResourceDetails>> getEntities() {
SkysailResponse<List<ResourceDetails>> entities = getEntities("Public API of Skysail JGit Extension");
List<ResourceDetails> data = entities.getData();
List<ResourceDetails> result = new ArrayList<ResourceDetails>();
for (ResourceDetails rd : data) {
result.add(new JGitResourceDetails(rd.getPath(), rd.getText(), rd.getFinder(), rd.getDesc()));
}
return new SuccessResponse<List<ResourceDetails>>(result);
}
@Override
protected List<ResourceDetails> getData() {
return allMethods();
}
@Override
public ResourceDetails getData(Form form) {
// TODO Auto-generated method stub
return null;
}
@Override
public SkysailResponse<?> addEntity(ResourceDetails entity) {
// TODO Auto-generated method stub
return null;
}
}