package de.twenty11.skysail.server.ext.jgit.internal; import org.restlet.data.Form; import org.restlet.resource.Get; import org.restlet.resource.ResourceException; import de.twenty11.skysail.common.Presentation; import de.twenty11.skysail.common.PresentationStyle; import de.twenty11.skysail.common.responses.FormResponse; import de.twenty11.skysail.common.responses.SkysailResponse; import de.twenty11.skysail.server.ext.jgit.CloneIntoLocalRepositoryCommand; import de.twenty11.skysail.server.ext.jgit.LocalRepositoryDescriptor; import de.twenty11.skysail.server.restlet.AddServerResource; @Presentation(preferred = PresentationStyle.EDIT) public class CloneFormResource extends AddServerResource<CloneFormDescriptor> { private String id; @Override protected void doInit() throws ResourceException { id = (String) getRequest().getAttributes().get("id"); } @Override @Get("html") public FormResponse<CloneFormDescriptor> createForm() { return new FormResponse<CloneFormDescriptor>(new CloneFormDescriptor(), "cloneform"); } @Override public CloneFormDescriptor getData(Form form) { return new CloneFormDescriptor(form.getFirstValue("remotePath")); } @Override public SkysailResponse<CloneFormDescriptor> addEntity(CloneFormDescriptor entity) { LocalRepositoryDescriptor repositoryDescriptor = ((MyApplication) getApplication()).getRepository() .getLocalRepositoryDescriptor(id); new CloneIntoLocalRepositoryCommand(repositoryDescriptor, entity).execute(); return new SkysailResponse<CloneFormDescriptor>(); } }