varargs: make printf working
[mate.git] / java / io / PrintStream.java
index 89fe534f952cc98b5dd9bfe1915e3ad38ada2a4a..0e7dafdfdb61ed6e0a7417dd546615144bfbf925 100644 (file)
@@ -1,6 +1,29 @@
 package java.io;
 
 public class PrintStream {
-       public native void printf(int a);
+       public PrintStream printf(String format, Object... args) {
+               /* temporary workaround ;-) */
+               int len = args.length;
+               if (len == 0) {
+                       this.println(format);
+               } else if (len == 1) {
+                       this.printf_1(format, args[0]);
+               } else if (len == 2) {
+                       this.printf_2(format, args[0], args[1]);
+               } else if (len == 3) {
+                       this.printf_3(format, args[0], args[1], args[2]);
+               } else if (len == 4) {
+                       this.printf_4(format, args[0], args[1], args[2], args[3]);
+               } else if (len == 5) {
+                       this.printf_5(format, args[0], args[1], args[2], args[3], args[4]);
+               }
+               return this;
+       }
+
+       public native void printf_1(String a, Object b);
+       public native void printf_2(String a, Object b, Object c);
+       public native void printf_3(String a, Object b, Object c, Object d);
+       public native void printf_4(String a, Object b, Object c, Object d, Object e);
+       public native void printf_5(String a, Object b, Object c, Object d, Object e, Object f);
        public native void println(String a);
 }