/** * Updates the Ds3Request's parameter: BucketId is changed from type UUID to String if said * parameter exists within the request */ protected static Ds3Request updateDs3RequestParamTypes(final Ds3Request ds3Request) { return new Ds3Request( ds3Request.getName(), ds3Request.getHttpVerb(), ds3Request.getClassification(), ds3Request.getBucketRequirement(), ds3Request.getObjectRequirement(), ds3Request.getAction(), ds3Request.getResource(), ds3Request.getResourceType(), ds3Request.getOperation(), ds3Request.getIncludeInPath(), ds3Request.getDs3ResponseCodes(), updateDs3ParamListTypes(ds3Request.getOptionalQueryParams()), updateDs3ParamListTypes(ds3Request.getRequiredQueryParams())); }
@Test public void SingleRequestHandler() throws IOException { final Ds3SpecParser parser = new Ds3SpecParserImpl(); final Ds3ApiSpec spec = parser.getSpec( Ds3SpecParserImpl_Test.class.getResourceAsStream("/specs/singleRequestHandler.xml")); assertThat(spec, is(notNullValue())); assertThat(spec.getRequests().size(), is(1)); final Ds3Request ds3Request = spec.getRequests().get(0); assertThat( ds3Request.getName(), is("com.spectralogic.s3.server.handler.reqhandler.amazons3.GetObjectRequest")); assertThat(ds3Request.getHttpVerb(), is(HttpVerb.GET)); assertThat(ds3Request.getClassification(), is(Classification.amazons3)); assertThat(ds3Request.getBucketRequirement(), is(Requirement.REQUIRED)); assertThat(ds3Request.getObjectRequirement(), is(Requirement.REQUIRED)); assertThat(ds3Request.getAction(), is(nullValue())); assertThat(ds3Request.getResource(), is(nullValue())); assertThat(ds3Request.getResourceType(), is(nullValue())); assertThat(ds3Request.getOperation(), is(nullValue())); assertThat(ds3Request.getDs3ResponseCodes().size(), is(1)); assertThat(ds3Request.getDs3ResponseCodes().get(0).getCode(), is(200)); assertThat(ds3Request.getDs3ResponseCodes().get(0).getDs3ResponseTypes().size(), is(1)); assertThat( ds3Request.getDs3ResponseCodes().get(0).getDs3ResponseTypes().get(0).getType(), is("java.lang.String")); assertThat( ds3Request.getDs3ResponseCodes().get(0).getDs3ResponseTypes().get(0).getComponentType(), is(nullValue())); assertThat(ds3Request.getOptionalQueryParams().size(), is(0)); assertThat(ds3Request.getRequiredQueryParams().size(), is(1)); assertThat(ds3Request.getRequiredQueryParams().get(0).getName(), is("Id")); assertThat(ds3Request.getRequiredQueryParams().get(0).getType(), is("java.util.UUID")); }
@Override public Request generate( final Ds3Request ds3Request, final String packageName, final Ds3DocSpec docSpec) { final Ds3Request updatedRequest = updateDs3RequestParamTypes(ds3Request); final String requestName = removePath(updatedRequest.getName()); final String requestPath = getRequestPath(updatedRequest); final String parentClass = getParentClass(ds3Request); final ImmutableList<Arguments> optionalArguments = splitAllUuidOptionalArguments( toOptionalArgumentsList(updatedRequest.getOptionalQueryParams())); final ImmutableList<RequestConstructor> constructors = splitAllUuidConstructors(toConstructorList(updatedRequest, requestName, docSpec)); final ImmutableList<Variable> classVariableArguments = convertAllUuidClassVariables(toClassVariableArguments(updatedRequest)); final ImmutableList<String> imports = getAllImports(updatedRequest, packageName); final ImmutableList<String> withConstructors = toWithConstructorList(optionalArguments, requestName, docSpec); return new Request( packageName, requestName, parentClass, updatedRequest.getHttpVerb(), requestPath, updatedRequest.getOperation(), updatedRequest.getAction(), optionalArguments, constructors, classVariableArguments, imports, withConstructors); }