package org.jboss.resteasy.test.validation.resource;
import javax.validation.constraints.Size;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.WebApplicationException;
import java.lang.reflect.Field;
@Path("/")
public class ValidationComplexResourceWithSubLocators {
@Path("validField")
public ValidationComplexResourceWithValidField validField() {
return new ValidationComplexResourceWithValidField();
}
@Path("invalidField")
public ValidationComplexResourceWithInvalidField invalidField() {
return new ValidationComplexResourceWithInvalidField();
}
@Path("property/{s}")
public ValidationComplexResourceWithProperty property(@PathParam("s") String s) {
ValidationComplexResourceWithProperty subResource = new ValidationComplexResourceWithProperty();
subResource.setS(s);
return subResource;
}
@Path("locator")
public SubResource sub() {
return new SubResource();
}
@Path("everything/{s}/{t}")
public ValidationComplexResourceWithAllFivePotentialViolations everything(@PathParam("s") String s, @PathParam("t") String t) {
ValidationComplexResourceWithAllFivePotentialViolations subresource = new ValidationComplexResourceWithAllFivePotentialViolations();
try {
Field field = ValidationComplexResourceWithAllFivePotentialViolations.class.getDeclaredField("s");
field.setAccessible(true);
field.set(subresource, s);
subresource.setT(t);
return subresource;
} catch (Exception e) {
throw new WebApplicationException(e);
}
}
@Path("")
public static class SubResource {
@Path("sublocator/{s}")
public SubSubResource sub(@PathParam("s") String s) {
SubSubResource ssr = new SubSubResource();
ssr.setS(s);
return ssr;
}
}
@Path("")
public static class SubSubResource {
@Size(min = 2, max = 3)
String s;
public SubSubResource() {
}
public void setS(String s) {
this.s = s;
}
@POST
public void subSub() {
}
}
}