summaryrefslogtreecommitdiff
path: root/codegen.bash
diff options
context:
space:
mode:
Diffstat (limited to 'codegen.bash')
-rwxr-xr-xcodegen.bash22
1 files changed, 22 insertions, 0 deletions
diff --git a/codegen.bash b/codegen.bash
new file mode 100755
index 0000000..f9837e4
--- /dev/null
+++ b/codegen.bash
@@ -0,0 +1,22 @@
+#!/bin/bash
+for type in byte char short int long; do
+ case $type in
+ int) object=Integer ;;
+ char) object=Character ;;
+ *) object=${type^} ;;
+ esac
+ hash='(int) key'
+ if [ $type = long ]; then
+ hash='(int) (key ^ (key >>> 32))'
+ fi
+ mkdir -p target/generated-sources/collections/java
+ for file in `find src/main/templates -name '*.template'`; do
+ filename=$(basename $file | sed "s/K/${type^}/;s/\.template/.java/")
+ sed -e "s/@k@/${type}/g" \
+ -e "s/@K@/${type^}/g" \
+ -e "s/@O@/${object}/g" \
+ -e "s/@KEY_NUMBER_METHOD@/${type}Value/g" \
+ -e "s/@HASH_CODE@/${hash}/g" \
+ $file > target/generated-sources/collections/java/$filename
+ done
+done