001package co.codewizards.cloudstore.ls.rest.client.request; 002 003import static java.util.Objects.*; 004 005import javax.ws.rs.client.Entity; 006import javax.ws.rs.client.WebTarget; 007 008import co.codewizards.cloudstore.ls.core.invoke.MethodInvocationRequest; 009import co.codewizards.cloudstore.ls.core.invoke.MethodInvocationResponse; 010import co.codewizards.cloudstore.ls.core.provider.MediaTypeConst; 011 012public class InvokeMethod extends AbstractRequest<MethodInvocationResponse> { 013 014 private final MethodInvocationRequest methodInvocationRequest; 015 016 public InvokeMethod(MethodInvocationRequest methodInvocationRequest) { 017 this.methodInvocationRequest = requireNonNull(methodInvocationRequest, "methodInvocationRequest"); 018 } 019 020 @Override 021 public MethodInvocationResponse execute() { 022 final WebTarget webTarget = createWebTarget("InvokeMethod"); 023 final MethodInvocationResponse repoInfoResponseDto = assignCredentials(webTarget.request(MediaTypeConst.APPLICATION_JAVA_NATIVE_WITH_OBJECT_REF_TYPE)) 024 .post(Entity.entity(methodInvocationRequest, MediaTypeConst.APPLICATION_JAVA_NATIVE_WITH_OBJECT_REF_TYPE), MethodInvocationResponse.class); 025 return repoInfoResponseDto; 026 } 027 028 @Override 029 public boolean isResultNullable() { 030 return false; 031 } 032}