import bprolog.plc.Plc;

public class TestTypeConversion {
  public static void main(String args[]) {
    TestTypeConversion o = new TestTypeConversion();
    Integer i = new Integer(10);
    Long l = new Long(10);
    Double d = new Double(3.4);
    String s = "abc*\"";
    Integer[] a = new Integer[]{new Integer(1),new Integer(2),new Integer(3)};

    Plc.startPlc(new String []{});

    Plc goal = new Plc("seeJavaData", new Object[] {o,i,l,d,s,a});
    Plc.exec("consult(testTypeConversion)");
    goal.call();
  }

  public void seePrologData(Integer i, Integer l, Double d, Object[] s, Object[] a){
    byte[] codes = new byte[s.length*2];
    
    System.out.println("Integer "+i);
    System.out.println("Long "+l);
    System.out.println("Double "+d);

    for (int j=0;j<s.length;j++){
      short code = ((Integer)s[j]).shortValue();
      codes[2*j] = (byte)(code >> 8);
      codes[2*j+1] = (byte)(code & 0xff);
    }
    String str = new String(codes);
    System.out.println("String "+str);    

    System.out.println("Array: ");
    for (int k=0; k<a.length; k++){
      System.out.println(" "+a[k]);
    }
  }
}

    


