All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.async.rmi.messages.InvokeRequest Maven / Gradle / Ivy

package org.async.rmi.messages;

import org.async.rmi.MarshalledObject;

import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

/**
 * Created by Barak Bar Orion
 * 27/10/14.
 */
public class InvokeRequest extends Request {
    private long objectId;
    private long methodId;
    private boolean oneWay;
    private MarshalledObject[] params;

    private transient String methodName;
    private String implClassName;
    private transient UUID clientId;

    @SuppressWarnings("UnusedDeclaration")
    public InvokeRequest() {
    }

    public InvokeRequest(long requestId, long objectId, long methodId, boolean oneWay, MarshalledObject[] params, String methodName, String implClassName) {
        super(requestId);
        this.objectId = objectId;
        this.methodId = methodId;
        this.oneWay = oneWay;
        this.params = params;
        this.methodName = methodName;
        this.implClassName = implClassName;
    }

    public long getObjectId() {
        return objectId;
    }

    public long getMethodId() {
        return methodId;
    }

    public MarshalledObject[] getParams() {
        return params;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    public void setImplClassName(String implClassName) {
        this.implClassName = implClassName;
    }

    public String getMethodName() {
        return methodName;
    }

    public String getImplClassName() {
        return implClassName;
    }

    public UUID getClientId() {
        return clientId;
    }

    public void setClientId(UUID clientId) {
        this.clientId = clientId;
    }
    public String getUniqueId(){
        return clientId.toString() + ":" + getRequestId();
    }

    public String callDescription() {
        StringBuilder sb = new StringBuilder();
        if (implClassName != null) {
            sb.append(implClassName);
        }
        sb.append("::");
        if (methodName != null) {
            sb.append(methodName);
        }
        sb.append('/');
        if (params != null) {
            sb.append(String.valueOf(params.length));
        } else {
            sb.append("0");
        }
        return sb.toString();
    }

    @Override
    public String toString() {
        return "InvokeRequest [" + callDescription() + "] {" +
                "requestId=" + getRequestId() +
                ", objectId=" + objectId +
                ", oneWay=" + oneWay +
                '}';
    }

    public String toDetailedString() {
        List params = (this.params == null) ? null : Arrays.stream(this.params).map(marshalledObject -> {
            try {
                return marshalledObject.get();
            } catch (Exception e) {
                return marshalledObject;
            }
        }).collect(Collectors.toList());
        return "InvokeRequest [" + callDescription() + "] {" +
                "requestId=" + getRequestId() +
                ", objectId=" + objectId +
                ", oneWay=" + oneWay +
                ", params=" + params +
                '}';

    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy