Guest User

Untitled

a guest
Aug 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. String[] templateDirs = [properties["collection.template.dir"],
  2. properties["collection.template.test.dir"]]
  3. String[] outputDirs = [properties["collection.src.dir"],
  4. properties["collection.testsrc.dir"]]
  5.  
  6. templateDirs.eachWithIndex { templateDir, i ->
  7. convertSources templateDir, outputDirs[i]
  8. }
  9.  
  10. void convertSources(String templateDir, String outputDir) {
  11. String[] keyPrimitives = ["byte", "char", "short", "int", "long"]
  12. String[] keyObjects = ["Byte", "Character", "Short", "Integer", "Long"]
  13. String[] keyNumberMethod = ["byteValue", "charValue", "shortValue", "intValue", "longValue"]
  14.  
  15. keyPrimitives.eachWithIndex { keyPrimitive, i ->
  16. convertTemplates templateDir, outputDir, keyPrimitive, keyObjects[i], keyNumberMethod[i]
  17. }
  18. }
  19.  
  20. void convertTemplates(String templateDir,
  21. String outputDir,
  22. String keyPrimitive,
  23. String keyObject,
  24. String keyNumberMethod) {
  25. def keyName = keyPrimitive.capitalize()
  26. def replaceFrom = "(^.*)K([^.]+)\.template$"
  27. def replaceTo = "\1" + keyName + "\2.java"
  28. def hashCodeFn = keyPrimitive.equals("long") ? "(int) (key ^ (key >>> 32))" : "(int) key"
  29. ant.copy(todir: outputDir) {
  30. fileset(dir: templateDir) {
  31. include(name: "**/*.template")
  32. }
  33. filterset() {
  34. filter(token: "K", value: keyName)
  35. filter(token: "k", value: keyPrimitive)
  36. filter(token: "O", value: keyObject)
  37. filter(token: "KEY_NUMBER_METHOD", value: keyNumberMethod)
  38. filter(token: "HASH_CODE", value: hashCodeFn)
  39. }
  40. regexpmapper(from: replaceFrom, to: replaceTo)
  41. }
  42. }
Add Comment
Please, Sign In to add comment