home *** CD-ROM | disk | FTP | other *** search
- package sun.rmi.rmic;
-
- import sun.tools.java.Constants;
- import sun.tools.java.Type;
-
- public class GenerateMarshaling extends ProxyNames implements Constants {
- public static void marshalArgument(ProxyStream var0, String var1, Type var2, String var3) {
- switch (var2.getTypeCode()) {
- case 0:
- var0.p(var1 + ".writeBoolean($" + var3 + ")");
- return;
- case 1:
- var0.p(var1 + ".writeByte($" + var3 + ")");
- return;
- case 2:
- var0.p(var1 + ".writeChar($" + var3 + ")");
- return;
- case 3:
- var0.p(var1 + ".writeShort($" + var3 + ")");
- return;
- case 4:
- var0.p(var1 + ".writeInt($" + var3 + ")");
- return;
- case 5:
- var0.p(var1 + ".writeLong($" + var3 + ")");
- return;
- case 6:
- var0.p(var1 + ".writeFloat($" + var3 + ")");
- return;
- case 7:
- var0.p(var1 + ".writeDouble($" + var3 + ")");
- return;
- case 8:
- var0.p(var1 + ".writeObject(null)");
- return;
- case 9:
- case 10:
- var0.p(var1 + ".writeObject($" + var3 + ")");
- return;
- case 11:
- throw new Error("Void type unexpected in marshalArgument");
- case 12:
- throw new Error("Method type unexpected in marshalArgument");
- case 13:
- throw new Error("Error type unexpected in marshalArgument");
- default:
- throw new Error("Unknown type code");
- }
- }
-
- public static boolean unmarshalArgument(ProxyStream var0, String var1, Type var2, String var3) {
- boolean var4 = false;
- if (var3 != null) {
- var0.p("$" + var3 + " = ");
- }
-
- switch (var2.getTypeCode()) {
- case 0:
- var0.p(var1 + ".readBoolean()");
- break;
- case 1:
- var0.p(var1 + ".readByte()");
- break;
- case 2:
- var0.p(var1 + ".readChar()");
- break;
- case 3:
- var0.p(var1 + ".readShort()");
- break;
- case 4:
- var0.p(var1 + ".readInt()");
- break;
- case 5:
- var0.p(var1 + ".readLong()");
- break;
- case 6:
- var0.p(var1 + ".readFloat()");
- break;
- case 7:
- var0.p(var1 + ".readDouble()");
- break;
- case 8:
- var0.p(" = null;");
- break;
- case 9:
- case 10:
- var4 = true;
- var0.p("(" + var2.toString() + ")" + var1 + ".readObject()");
- break;
- case 11:
- throw new Error("Void type unexpected in unmarshalArgument");
- case 12:
- throw new Error("Method type unexpected in unmarshalArgument");
- case 13:
- throw new Error("Error type unexpected in unmarshalArgument");
- default:
- throw new Error("Unknown type code");
- }
-
- return var4;
- }
-
- public static void marshalArguments(ProxyStream var0, String var1, Type[] var2, String[] var3) {
- if (var2.length != var3.length) {
- throw new Error("internal error, marshalArguments!");
- } else {
- for(int var4 = 0; var4 < var2.length; ++var4) {
- marshalArgument(var0, var1, var2[var4], var3[var4]);
- var0.pln(";");
- }
-
- }
- }
-
- public static void unmarshalArguments(ProxyStream var0, String var1, Type[] var2, String[] var3) {
- if (var2.length != var3.length) {
- throw new Error("internal error, unmarshalArguments!");
- } else {
- for(int var4 = 0; var4 < var2.length; ++var4) {
- unmarshalArgument(var0, var1, var2[var4], var3[var4]);
- var0.pln(";");
- }
-
- }
- }
- }
-