diff --git a/tools/Examples.py b/tools/Examples.py
index bdf3826a..6e9a4b8f 100644
--- a/tools/Examples.py
+++ b/tools/Examples.py
@@ -119,6 +119,28 @@ def copyAntBuildFiles():
shutil.copy(str(github / "Ant-Common.xml"), str(destination))
+class CodeFileOptions(object):
+ """docstring for CodeFileOptions"""
+ def __init__(self, codeFile):
+ self.codeFile = codeFile
+
+ self.cmdargs = None
+ if "{Args:" in self.codeFile.code:
+ for line in self.codeFile.lines:
+ if "{Args:" in line:
+ self.cmdargs = line.split("{Args:")[1].strip()[:-1]
+
+ self.runbyhand = "{RunByHand}" in self.codeFile.code
+
+ self.exclude = None
+ if "{CompileTimeError}" in self.codeFile.code:
+ self.exclude = self.codeFile.name + ".java"
+ if self.codeFile.subdirs:
+ self.exclude = '/'.join(self.codeFile.subdirs) + '/' + self.exclude
+ print(self.exclude)
+
+ self.throwsexception = "{ThrowsException}" in self.codeFile.code
+
class CodeFile:
def __init__(self, javaFile, chapterDir):
self.chapter_dir = chapterDir
@@ -139,30 +161,31 @@ class CodeFile:
self.tagLine = self.lines[0][4:]
self.relpath = '../' + '/'.join(self.tagLine.split('/')[:-1])
self.name = javaFile.name.split('.')[0]
- self.cmdargs = None
- if "{Args:" in self.code:
- for line in self.lines:
- if "{Args:" in line:
- self.cmdargs = line.split("{Args:")[1].strip()[:-1]
- self.runbyhand = "{RunByHand}" in self.code
- self.exclude = None
- if "{CompileTimeError}" in self.code:
- self.exclude = self.name + ".java"
- if self.subdirs:
- self.exclude = '/'.join(self.subdirs) + '/' + self.exclude
- print(self.exclude)
- self.throwsexception = "{ThrowsException}" in self.code
+ self.options = CodeFileOptions(self)
+ # self.cmdargs = None
+ # if "{Args:" in self.code:
+ # for line in self.lines:
+ # if "{Args:" in line:
+ # self.cmdargs = line.split("{Args:")[1].strip()[:-1]
+ # self.runbyhand = "{RunByHand}" in self.code
+ # self.exclude = None
+ # if "{CompileTimeError}" in self.code:
+ # self.exclude = self.name + ".java"
+ # if self.subdirs:
+ # self.exclude = '/'.join(self.subdirs) + '/' + self.exclude
+ # print(self.exclude)
+ # self.throwsexception = "{ThrowsException}" in self.code
def run_command(self):
if not self.main:
return ""
if self.package:
- if self.cmdargs:
- return """ \n""" % (self.packageName() + '.' + self.name, self.relpath, self.cmdargs)
+ if self.options.cmdargs:
+ return """ \n""" % (self.packageName() + '.' + self.name, self.relpath, self.options.cmdargs)
else:
return """ \n""" % (self.packageName() + '.' + self.name, self.relpath)
- if self.cmdargs:
- return """ \n""" % (self.name, self.cmdargs)
+ if self.options.cmdargs:
+ return """ \n""" % (self.name, self.options.cmdargs)
else:
return """ \n""" % self.name
@@ -188,7 +211,7 @@ class Chapter:
def __init__(self, dir):
self.dir = dir
self.code_files = [CodeFile(javaFile, dir) for javaFile in dir.glob("**/*.java")]
- self.excludes = [cf.exclude for cf in self.code_files if cf.exclude]
+ self.excludes = [cf.options.exclude for cf in self.code_files if cf.options.exclude]
def __repr__(self):
result = "-" * 80
@@ -210,7 +233,7 @@ class Chapter:
def makeBuildFile(self):
buildFile = startBuild % (self.dir.name, " ".join(self.excludes))
for cf in self.code_files:
- if any([cf.name + ".java" in f for f in self.excludes]) or cf.runbyhand:
+ if any([cf.name + ".java" in f for f in self.excludes]) or cf.options.runbyhand:
continue
buildFile += cf.run_command()
buildFile += endBuild