embedjava.ecl 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. IMPORT java;
  2. integer add1(integer val) := IMPORT(java, 'JavaCat.add1:(I)I');
  3. string add2(string val) := IMPORT(java, 'JavaCat.add2:(Ljava/lang/String;)Ljava/lang/String;');
  4. string add3(varstring val) := IMPORT(java, 'JavaCat.add2:(Ljava/lang/String;)Ljava/lang/String;');
  5. utf8 add4(utf8 val) := IMPORT(java, 'JavaCat.add2:(Ljava/lang/String;)Ljava/lang/String;');
  6. unicode add5(unicode val) := IMPORT(java, 'JavaCat.add2:(Ljava/lang/String;)Ljava/lang/String;');
  7. integer testThrow(integer p) := IMPORT(java, 'JavaCat.testThrow:(I)I');
  8. string addChar(string c) := IMPORT(java, 'JavaCat.addChar:(C)C');
  9. string cat(string s1, string s2) := IMPORT(java, 'JavaCat.cat:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;');
  10. add1(10);
  11. add2('Hello');
  12. add3('World');
  13. add4(U'Leovenaðes');
  14. add5(U'Стоял');
  15. addChar('A');
  16. cat('Hello', ' world');
  17. // Can't catch an expression(only a dataset)
  18. d := dataset([{ 1, '' }], { integer a, string m} ) : stored('nofold');
  19. d t := transform
  20. self.a := FAILCODE;
  21. self.m := FAILMESSAGE;
  22. self := [];
  23. end;
  24. catch(d(testThrow(a) = a), onfail(t));
  25. s1 :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := add1(COUNTER)));
  26. s2 :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := add1(COUNTER/2)));
  27. SUM(NOFOLD(s1 + s2), a);
  28. s1a :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := (integer) add2((STRING)COUNTER)));
  29. s2a :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := (integer) add3((STRING)(COUNTER/2))));
  30. SUM(NOFOLD(s1a + s2a), a);
  31. s1b :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := COUNTER+1));
  32. s2b :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := (COUNTER/2)+1));
  33. SUM(NOFOLD(s1b + s2b), a);
  34. s1c :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := (integer) ((STRING) COUNTER + '1')));
  35. s2c :=DATASET(250000, TRANSFORM({ integer a }, SELF.a := (integer) ((STRING)(COUNTER/2) + '1')));
  36. SUM(NOFOLD(s1c + s2c), a);