PageRenderTime 36ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/ProjectSign/src/com/google/code/test/HelloWorld.java

http://projectsign.googlecode.com/
Java | 176 lines | 121 code | 23 blank | 32 comment | 122 complexity | 6ff5e3042eccb484141d3bdf9a071456 MD5 | raw file
  1. package com.google.code.test;
  2. import javax.script.*;
  3. public class HelloWorld {
  4. String phpPrint = "print";
  5. public static final String T = ";";
  6. private String phpSelfPostURL() {
  7. String php = "$_POST ? $_SERVER['PHP_SELF'] : 'NEED TO POST A FORM FIRST!'";
  8. return php;
  9. }
  10. /**
  11. * Translate to PHP codes.
  12. *
  13. * @param statement
  14. * in JavaScript only
  15. * @return
  16. */
  17. private String toPhp(String jsStatement) {
  18. String retVal = jsStatement;
  19. if (jsStatement != null) {
  20. retVal = jsPrint2Php(jsStatement);
  21. retVal = jsBoolean2Php(jsStatement);
  22. }
  23. return retVal;
  24. }
  25. public String jsString2Php(String jsStatement) {
  26. String retVal = jsStatement;
  27. String temp = null;
  28. if (jsStatement != null && jsStatement.trim().indexOf("print") == 0) {
  29. retVal = jsStatement.replaceAll("print", "strlen");
  30. } else if (jsStatement != null
  31. && jsStatement.trim().indexOf("print") == 0) {
  32. retVal = jsStatement.replaceAll("print", "trim");
  33. } else if (jsStatement != null
  34. && jsStatement.trim().indexOf("print") == 0) {
  35. retVal = jsStatement.replaceAll("print", "strtolower");
  36. } else if (jsStatement != null
  37. && jsStatement.trim().indexOf("print") == 0) {
  38. retVal = jsStatement.replaceAll("print", "strtoupper");
  39. } else if (jsStatement != null
  40. && jsStatement.trim().indexOf("print") == 0) {
  41. retVal = jsStatement.replaceAll("print", "nl2br");
  42. } else if (jsStatement != null
  43. && jsStatement.trim().indexOf("print") == 0) {
  44. retVal = jsStatement.replaceAll("print", "htmlentities");
  45. } else if (jsStatement != null
  46. && jsStatement.trim().indexOf("print") == 0) {
  47. retVal = jsStatement.replaceAll("print", "html_entity_decode");
  48. } else if (jsStatement != null
  49. && jsStatement.trim().indexOf("print") == 0) {
  50. retVal = jsStatement.replaceAll("print", "strpos");
  51. } else if (jsStatement != null
  52. && jsStatement.trim().indexOf("print") == 0) {
  53. retVal = jsStatement.replaceAll("print", "stripos");
  54. } else if (jsStatement != null
  55. && jsStatement.trim().indexOf("print") == 0) {
  56. retVal = jsStatement.replaceAll("print", "strrpos");
  57. } else if (jsStatement != null
  58. && jsStatement.trim().indexOf("print") == 0) {
  59. retVal = jsStatement.replaceAll("print", "strripos");
  60. } else if (jsStatement != null
  61. && jsStatement.trim().indexOf("print") == 0) {
  62. retVal = jsStatement.replaceAll("print", "str_replace");
  63. } else if (jsStatement != null
  64. && jsStatement.trim().indexOf("print") == 0) {
  65. retVal = jsStatement.replaceAll("print", "str_ireplace");
  66. } else if (jsStatement != null
  67. && jsStatement.trim().indexOf("print") == 0) {
  68. retVal = jsStatement.replaceAll("print", "stripslashes");
  69. } else if (jsStatement != null
  70. && jsStatement.trim().indexOf("print") == 0) {
  71. retVal = jsStatement.replaceAll("print", "strip_tags");
  72. } else if (jsStatement != null
  73. && jsStatement.trim().indexOf("print") == 0) {
  74. retVal = jsStatement.replaceAll("print", "is_numeric");
  75. } else if (jsStatement != null
  76. && jsStatement.trim().indexOf("print") == 0) {
  77. retVal = jsStatement.replaceAll("print", "ctype_digit");
  78. } else if (jsStatement != null
  79. && jsStatement.trim().indexOf("print") == 0) {
  80. retVal = jsStatement.replaceAll("print", "ctype_alnum");
  81. } else if (jsStatement != null
  82. && jsStatement.trim().indexOf("print") == 0) {
  83. retVal = jsStatement.replaceAll("print", "ctype_alpha");
  84. }
  85. return retVal;
  86. }
  87. public String jsPrint2Php(String jsStatement) {
  88. String retVal = jsStatement;
  89. if (jsStatement != null && jsStatement.trim().indexOf("print") == 0) {
  90. // retVal = jsStatement.replaceAll("\\Q" + "print" + "\\E", "echo");
  91. retVal = jsStatement.replaceAll("print", "echo");
  92. }
  93. return retVal;
  94. }
  95. private String jsBoolean2Php(String jsStatement) {
  96. String retVal = jsStatement;
  97. if (jsStatement != null && jsStatement.trim().indexOf("TRUE") == 0) {
  98. // do nothing, php is also TRUE
  99. } else if (jsStatement != null
  100. && jsStatement.trim().indexOf("FALSE") == 0) {
  101. // do nothing, php is also FALSE
  102. }
  103. return retVal;
  104. }
  105. /**
  106. * Wrap the php array with array_key_exists function.
  107. *
  108. * @param array
  109. * e.g. $_GET (without the array [ and ])
  110. * @param key
  111. * e.g. 'bg' (with the proper quotes)
  112. * @param keyNotFoundValue
  113. * e.g. "#FFFFFF" (with the proper quotes)
  114. * @return the string wrapped with array_key_exists
  115. */
  116. private String phpSafeArray(String array, String key,
  117. String keyNotFoundValue) {
  118. String retVal = null;
  119. if (array != null && !"".equals(array) && key != null
  120. && !"".equals(key) && keyNotFoundValue != null
  121. && !"".equals(keyNotFoundValue)) {
  122. retVal = "$temp = array_key_exists(" + key + ", " + array + ")? "
  123. + array + "[" + key + "]: " + keyNotFoundValue + T;
  124. }
  125. return retVal;
  126. }
  127. /*
  128. * If enclosed variable exists, must be enclosed with " not '.
  129. */
  130. private String phpEnclosedVariable(String enclosedVariable) {
  131. String retVal = enclosedVariable;
  132. if (retVal != null) {
  133. if (retVal.indexOf("'") == 0) {
  134. // assuming if there is head, there will be a tail
  135. retVal = retVal.replaceAll("'", "\"");
  136. }
  137. }
  138. return retVal;
  139. }
  140. public static void main(String[] args) throws Exception {
  141. // HelloWorld h = new HelloWorld();
  142. // System.out.println(h.jsPrint2Php("print printprint"));
  143. // create a script engine manager
  144. ScriptEngineManager factory = new ScriptEngineManager();
  145. // create a JavaScript engine
  146. ScriptEngine engine = factory.getEngineByName("JavaScript");
  147. // evaluate JavaScript code from String
  148. // engine.eval("print('Hello, World')");
  149. ScriptEngineManager factory2 = new ScriptEngineManager();
  150. ScriptEngine engine2 = factory2.getEngineByName("php");
  151. // engine2.eval("<?php echo 'Hello, World'?>");
  152. }
  153. }