From 0b33e56e0a75c7118de4b0c60ae6548674378cae Mon Sep 17 00:00:00 2001 From: philippe lhardy Date: Thu, 19 Feb 2015 22:21:44 +0100 Subject: [PATCH] clean out add interface/InterfaceName target to create a template interface move generate_newclass.sh to generate_new.sh and take class or interface as argument Signed-off-by: philippe lhardy --- Makefile | 1 + antify.sh | 2 +- java/Makefile | 13 ++++-- java/README | 5 ++- .../{generate_newclass.sh => generate_new.sh} | 41 +++++++++++++++++-- 5 files changed, 53 insertions(+), 9 deletions(-) rename java/{generate_newclass.sh => generate_new.sh} (64%) diff --git a/Makefile b/Makefile index e4b10d3..bb8ee08 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ clean: rm -f build.xml rm -f dist/lib/$(DISTPREFIX)*.jar rm -rf build + cd java; make clean cleanall: clean rm -rf debian diff --git a/antify.sh b/antify.sh index c1ca9fd..8fc26e5 100755 --- a/antify.sh +++ b/antify.sh @@ -32,7 +32,7 @@ cat < - + diff --git a/java/Makefile b/java/Makefile index 7f05adf..79b28a0 100644 --- a/java/Makefile +++ b/java/Makefile @@ -1,12 +1,13 @@ PACKAGE=org.artisanlogiciel.games PACKAGE_DIR=$(subst .,/,$(PACKAGE)) OUT=out +EDITOR=emacs $(OUT): mkdir -p $(OUT) clean: - find $(OUT) -name "*.class" -type f -print0|xargs -0 rm + @find $(OUT) -name "*.class" -type f -print0|xargs -0 rm 2>/dev/null || echo "nothing to clean" test: javac -d $(OUT) $(PACKAGE_DIR)/LabyModel.java @@ -29,17 +30,21 @@ compile/%: javac -d $(OUT) $(PACKAGE_DIR)/$(subst compile/,,$@).java $(PACKAGE_DIR)/%.java: - ./generate_newclass.sh $(subst .java,,$(subst $(PACKAGE_DIR)/,,$@)) + ./generate_new.sh class $(subst .java,,$(subst $(PACKAGE_DIR)/,,$@)) + +interface/%: + ./generate_new.sh interface package_dir=$(PACKAGE_DIR) $(subst interface/,,$@) + $(EDITOR) $(PACKAGE_DIR)/$(subst interface/,,$@).java work/%: $(PACKAGE_DIR)/$(subst work/,,%).java - emacs $< + $(EDITOR) $< work: work/LabyModel save: git citool -.PHONY: clean test work display work/% run/% save compile/% +.PHONY: clean test work display work/% run/% save compile/% interface/% # tried to avoid intermediate file removal : does not work # .SECONDARY: $(PACKAGE_DIR)/%.java diff --git a/java/README b/java/README index 5cdbd15..5f8e6bb 100644 --- a/java/README +++ b/java/README @@ -18,4 +18,7 @@ make work/Display make run/Display #save work with git (ie git citool ) -make save \ No newline at end of file +make save + +# create an interface +make interface/InterfaceName \ No newline at end of file diff --git a/java/generate_newclass.sh b/java/generate_new.sh similarity index 64% rename from java/generate_newclass.sh rename to java/generate_new.sh index 51512c8..25035d6 100755 --- a/java/generate_newclass.sh +++ b/java/generate_new.sh @@ -1,13 +1,25 @@ #!/bin/bash +#TODO : support "like=" to copy/renaming an existing class + PACKAGE=org.artisanlogiciel.games +TOOLP="$0 $*" + +ctype=class while [[ $# > 0 ]] do case $1 in + class|interface) + ctype=$1 + ;; package=*) PACKAGE=${1/package=/} ;; + package_dir=*) + PACKAGE_DIR=${1/package=/} + PACKAGE=${PACKAGE//\//\.} + ;; *) CLASS=${1} ;; @@ -36,13 +48,15 @@ then exit 1 else + if [[ $ctype == class ]] + then cat <$JAVA_FILE package $PACKAGE; /** - $CLASS was autogenerated by $0 + $CLASS was autogenerated by $TOOLP **/ -public class $CLASS +public $ctype $CLASS { Object param; @@ -69,6 +83,27 @@ public class $CLASS } } EOF -fi + else +cat <$JAVA_FILE +package $PACKAGE; + +/** + $CLASS was autogenerated by $TOOLP + **/ +public $ctype $CLASS +{ + /** + @return X + */ + int getX(); + + /** + @return Y + */ + int getY(); +} +EOF + fi +fi echo "$JAVA_FILE generated"