| package org.eclipse.emf.emfstore.jax.server.resources; |
| |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.CHUNK_NUMBER_PATH_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.DELETE_FILES_QUERY_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.FILE_IDENTIFIER_PATH_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.FILE_SIZE_QUERY_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PRIMARY_TAG_ID; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH_CHANGES; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH_FILES; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH_PROPERTIES; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH_RESOLVE_VERSION_SPEC; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH_TAGS; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECTS_PATH_VERSIONS; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.PROJECT_ID_PATH_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.SECONDARY_TAG_ID; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.SOURCE_VERSION_SPEC_QUERY_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.TARGET_VERSION_SPEC_QUERY_PARAM; |
| import static org.eclipse.emf.emfstore.jax.common.CallParamStrings.VERSION_SPEC_QUERY_PARAM; |
| |
| import java.io.InputStream; |
| |
| import javax.ws.rs.Consumes; |
| import javax.ws.rs.DELETE; |
| import javax.ws.rs.GET; |
| import javax.ws.rs.POST; |
| import javax.ws.rs.Path; |
| import javax.ws.rs.PathParam; |
| import javax.ws.rs.Produces; |
| import javax.ws.rs.QueryParam; |
| import javax.ws.rs.core.MediaType; |
| import javax.ws.rs.core.Response; |
| |
| import org.eclipse.emf.emfstore.server.exceptions.ESException; |
| |
| /** |
| * |
| * @author Pascal Schliski |
| * |
| */ |
| @Path(PROJECTS_PATH) |
| public interface IProjects { |
| |
| @GET |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response getProjectList() throws ESException; |
| |
| @GET |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}") |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response getProject(@PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| @QueryParam(VERSION_SPEC_QUERY_PARAM) String versionSpecAsString) throws ESException; |
| |
| @POST |
| @Consumes({ MediaType.APPLICATION_XML }) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response createProject(InputStream is) throws ESException; |
| |
| @DELETE |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}") |
| public Response deleteProject(@PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| @QueryParam(DELETE_FILES_QUERY_PARAM) boolean deleteFiles) throws ESException; |
| |
| @GET |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}" + "/" + PROJECTS_PATH_CHANGES) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response getChanges(@PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| @QueryParam(SOURCE_VERSION_SPEC_QUERY_PARAM) String sourceVersionSpecAsString, |
| @QueryParam(TARGET_VERSION_SPEC_QUERY_PARAM) String targetVersionSpecAsString) |
| throws ESException; |
| |
| @POST |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}") |
| @Consumes({ MediaType.APPLICATION_XML }) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response createVersion( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| InputStream is) throws ESException; |
| |
| @POST |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_RESOLVE_VERSION_SPEC) |
| @Consumes({ MediaType.APPLICATION_XML }) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response resolveVersionSpec( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| InputStream is) throws ESException; |
| |
| @POST |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_VERSIONS) |
| @Consumes({ MediaType.APPLICATION_XML }) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response getHistoryInfo( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| InputStream is) throws ESException; |
| |
| @POST |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_TAGS) |
| @Consumes({ MediaType.APPLICATION_XML }) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response addTag( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| InputStream is) throws ESException; |
| |
| @DELETE |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_TAGS + "/{" |
| + PRIMARY_TAG_ID + "}/{" |
| + SECONDARY_TAG_ID + "}") |
| public Response removeTag( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| @PathParam(PRIMARY_TAG_ID) String primaryVersionSpecAsString, |
| @PathParam(SECONDARY_TAG_ID) String tagVersionSpecAsString) throws ESException; |
| |
| @POST |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_PROPERTIES) |
| @Consumes({ MediaType.APPLICATION_XML }) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response setEMFProperties( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| InputStream is) throws ESException; |
| |
| @GET |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_PROPERTIES) |
| @Produces({ MediaType.APPLICATION_XML }) |
| public Response getEMFProperties( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString) throws ESException; |
| |
| @POST |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_FILES) |
| @Consumes({ MediaType.WILDCARD }) |
| @Produces({ MediaType.WILDCARD }) |
| public Response uploadFileChunk( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| InputStream is) throws ESException; |
| |
| @GET |
| @Path("/{" + PROJECT_ID_PATH_PARAM + "}/" |
| + PROJECTS_PATH_FILES + |
| "/{" + FILE_IDENTIFIER_PATH_PARAM + "}" + |
| "/{" + CHUNK_NUMBER_PATH_PARAM + "}") |
| @Produces({ MediaType.WILDCARD }) |
| public Response downloadFileChunk( |
| @PathParam(PROJECT_ID_PATH_PARAM) String projectIdAsString, |
| @PathParam(FILE_IDENTIFIER_PATH_PARAM) String fileIdentifierAsString, |
| @PathParam(CHUNK_NUMBER_PATH_PARAM) int chunkNumber, |
| @QueryParam(FILE_SIZE_QUERY_PARAM) int fileSize) throws ESException; |
| } |