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