
org.nakedobjects.nos.remote.command.ExecuteServerAction Maven / Gradle / Ivy
package org.nakedobjects.nos.remote.command;
import org.nakedobjects.noa.security.Session;
import org.nakedobjects.noa.util.ByteDecoder;
import org.nakedobjects.noa.util.ByteEncoder;
import org.nakedobjects.nof.core.util.ToString;
import org.nakedobjects.nof.reflect.remote.data.Data;
import org.nakedobjects.nof.reflect.remote.data.Distribution;
import org.nakedobjects.nof.reflect.remote.data.IdentityData;
import org.nakedobjects.nof.reflect.remote.data.ReferenceData;
import org.nakedobjects.nof.reflect.remote.data.ServerActionResultData;
public class ExecuteServerAction extends AbstractRequest {
private static final long serialVersionUID = 1L;
private final String actionIdentifier;
private final String actionType;
private final Data[] parameters;
private final ReferenceData target;
public ExecuteServerAction(final
Session session, final
String actionType, final
String actionIdentifier, final
ReferenceData target, final
Data[] parameters) {
super(session);
this.actionType = actionType;
this.actionIdentifier = actionIdentifier;
this.target = target;
this.parameters = parameters;
}
public ExecuteServerAction(ByteDecoder decoder) {
super(decoder);
actionIdentifier = decoder.getString();
actionType = decoder.getString();
target = (IdentityData) decoder.getObject();
int size = decoder.getInt();
parameters = new Data[size];
for (int i = 0; i < size; i++) {
parameters[i] = (Data) decoder.getObject();
}
}
protected void doEncode(final ByteEncoder encoder) {
encoder.add(actionIdentifier);
encoder.add(actionType);
encoder.add(target);
encoder.add(parameters.length);
for (int i = 0; i < parameters.length; i++) {
encoder.add(parameters[i]);
}
}
public void execute(final Distribution distribution) {
setResponse(distribution.executeServerAction(session, actionType, actionIdentifier, target, parameters));
}
public ServerActionResultData getActionResult() {
return (ServerActionResultData) getResponse();
}
public String toString() {
ToString str = new ToString(this);
str.append("method", actionIdentifier);
str.append("target", target);
return str.toString();
}
}
// Copyright (c) Naked Objects Group Ltd.
© 2015 - 2025 Weber Informatics LLC | Privacy Policy