diff options
author | Henri Sara <hesara@vaadin.com> | 2012-02-29 17:16:00 +0200 |
---|---|---|
committer | Henri Sara <hesara@vaadin.com> | 2012-02-29 17:16:18 +0200 |
commit | 121b1dae346d60896205c4db5bc0c0db0c504a41 (patch) | |
tree | 974fd116dd151b16c0fadbfd6c0827eb02bb3bf5 /src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java | |
parent | f1061c43764d81c17bdac919dcc8b1ec16b8ed94 (diff) | |
download | vaadin-framework-121b1dae346d60896205c4db5bc0c0db0c504a41.tar.gz vaadin-framework-121b1dae346d60896205c4db5bc0c0db0c504a41.zip |
Implement server to client RPC (#8426).
Diffstat (limited to 'src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java')
-rw-r--r-- | src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java b/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java new file mode 100644 index 0000000000..8133a617ca --- /dev/null +++ b/src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java @@ -0,0 +1,64 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.terminal.gwt.server; + +import java.io.Serializable; + +import com.vaadin.terminal.Paintable; + +/** + * Internal class for keeping track of pending server to client method + * invocations for a Paintable. + * + * @since 7.0 + */ +public class ClientMethodInvocation implements Serializable, + Comparable<ClientMethodInvocation> { + private final Paintable paintable; + private final String interfaceName; + private final String methodName; + private final Object[] parameters; + + // used for sorting calls between different Paintables in the same Root + private final long sequenceNumber; + // TODO may cause problems when clustering etc. + private static long counter = 0; + + public ClientMethodInvocation(Paintable paintable, String interfaceName, + String methodName, Object[] parameters) { + this.paintable = paintable; + this.interfaceName = interfaceName; + this.methodName = methodName; + this.parameters = (null != parameters) ? parameters : new Object[0]; + sequenceNumber = ++counter; + } + + public Paintable getPaintable() { + return paintable; + } + + public String getInterfaceName() { + return interfaceName; + } + + public String getMethodName() { + return methodName; + } + + public Object[] getParameters() { + return parameters; + } + + protected long getSequenceNumber() { + return sequenceNumber; + } + + public int compareTo(ClientMethodInvocation o) { + if (null == o) { + return 0; + } + return Long.signum(getSequenceNumber() - o.getSequenceNumber()); + } +}
\ No newline at end of file |