2015-04-20 15:36:01 -07:00
|
|
|
<?xml version="1.0" ?>
|
|
|
|
|
|
|
|
<project
|
|
|
|
basedir="."
|
|
|
|
default="run"
|
|
|
|
name="Thinking in Java, 4th Edition (Refreshed) by Bruce Eckel (chapter: holding)">
|
|
|
|
|
|
|
|
<description>
|
|
|
|
build.xml for the source code for the holding chapter of
|
|
|
|
Thinking in Java, 4th Edition (Refreshed) by Bruce Eckel
|
|
|
|
Source code available at http://www.MindView.net
|
|
|
|
See copyright notice in CopyRight.txt
|
|
|
|
|
|
|
|
Ant available from: http://ant.apache.org/
|
|
|
|
|
|
|
|
To see options, type: ant -p
|
|
|
|
</description>
|
|
|
|
|
|
|
|
<condition property="version1.8">
|
|
|
|
<equals arg1="1.8" arg2="${ant.java.version}"/>
|
|
|
|
</condition>
|
|
|
|
|
|
|
|
<target name="typeinfo_pets">
|
2015-04-20 23:01:41 -07:00
|
|
|
<javac includeantruntime="false"
|
2015-04-20 15:36:01 -07:00
|
|
|
classpath="${basedir}/.."
|
|
|
|
srcdir="${basedir}/../typeinfo/pets/">
|
|
|
|
<compilerarg value="-Xmaxerrs"/>
|
|
|
|
<compilerarg value="10"/>
|
|
|
|
</javac>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="net_mindview_util">
|
2015-04-20 23:01:41 -07:00
|
|
|
<javac includeantruntime="false"
|
2015-04-20 15:36:01 -07:00
|
|
|
classpath="${basedir}/.."
|
|
|
|
srcdir="${basedir}/../net/mindview/util/">
|
|
|
|
<compilerarg value="-Xmaxerrs"/>
|
|
|
|
<compilerarg value="10"/>
|
|
|
|
</javac>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target
|
|
|
|
depends="typeinfo_pets,net_mindview_util"
|
|
|
|
description="Build all classes in this directory"
|
|
|
|
name="build">
|
|
|
|
<fail message="J2SE8 required" unless="version1.8"/>
|
|
|
|
<echo message="Building 'holding'"/>
|
2015-04-20 23:01:41 -07:00
|
|
|
<javac includeantruntime="false"
|
2015-04-20 15:36:01 -07:00
|
|
|
classpath="${basedir}/.."
|
|
|
|
debug="true"
|
|
|
|
srcdir="${basedir}">
|
|
|
|
<compilerarg value="-Xmaxerrs"/>
|
|
|
|
<compilerarg value="10"/>
|
|
|
|
</javac>
|
|
|
|
<echo message="Build 'holding' succeeded"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="AdapterMethodIdiom">
|
|
|
|
<java
|
|
|
|
classname="AdapterMethodIdiom"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="AddingGroups">
|
|
|
|
<java
|
|
|
|
classname="AddingGroups"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ApplesAndOrangesWithGenerics">
|
|
|
|
<java
|
|
|
|
classname="ApplesAndOrangesWithGenerics"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ApplesAndOrangesWithoutGenerics">
|
|
|
|
<java
|
|
|
|
classname="ApplesAndOrangesWithoutGenerics"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="false"
|
|
|
|
fork="true"/>
|
|
|
|
<echo message="* Exception was expected *"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ArrayIsNotIterable">
|
|
|
|
<java
|
|
|
|
classname="ArrayIsNotIterable"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="AsListInference">
|
|
|
|
<java
|
|
|
|
classname="AsListInference"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="CollectionSequence">
|
|
|
|
<java
|
|
|
|
classname="CollectionSequence"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ContainerMethods">
|
|
|
|
<java
|
|
|
|
classname="ContainerMethods"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="CrossContainerIteration">
|
|
|
|
<java
|
|
|
|
classname="CrossContainerIteration"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="EnvironmentVariables">
|
|
|
|
<java
|
|
|
|
classname="EnvironmentVariables"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ForEachCollections">
|
|
|
|
<java
|
|
|
|
classname="ForEachCollections"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="GenericsAndUpcasting">
|
|
|
|
<java
|
|
|
|
classname="GenericsAndUpcasting"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="InterfaceVsIterator">
|
|
|
|
<java
|
|
|
|
classname="InterfaceVsIterator"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="IterableClass">
|
|
|
|
<java
|
|
|
|
classname="IterableClass"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="LinkedListFeatures">
|
|
|
|
<java
|
|
|
|
classname="LinkedListFeatures"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ListFeatures">
|
|
|
|
<java
|
|
|
|
classname="ListFeatures"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ListIteration">
|
|
|
|
<java
|
|
|
|
classname="ListIteration"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="MapOfList">
|
|
|
|
<java
|
|
|
|
classname="holding.MapOfList"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="ModifyingArraysAsList">
|
|
|
|
<java
|
|
|
|
classname="ModifyingArraysAsList"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="MultiIterableClass">
|
|
|
|
<java
|
|
|
|
classname="MultiIterableClass"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="NonCollectionSequence">
|
|
|
|
<java
|
|
|
|
classname="NonCollectionSequence"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="PetMap">
|
|
|
|
<java
|
|
|
|
classname="PetMap"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="PrintingContainers">
|
|
|
|
<java
|
|
|
|
classname="PrintingContainers"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="PriorityQueueDemo">
|
|
|
|
<java
|
|
|
|
classname="PriorityQueueDemo"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="QueueDemo">
|
|
|
|
<java
|
|
|
|
classname="QueueDemo"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="SetOfInteger">
|
|
|
|
<java
|
|
|
|
classname="SetOfInteger"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="SetOperations">
|
|
|
|
<java
|
|
|
|
classname="SetOperations"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="SimpleCollection">
|
|
|
|
<java
|
|
|
|
classname="SimpleCollection"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="SimpleIteration">
|
|
|
|
<java
|
|
|
|
classname="SimpleIteration"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="SortedSetOfInteger">
|
|
|
|
<java
|
|
|
|
classname="SortedSetOfInteger"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="StackCollision">
|
|
|
|
<java
|
|
|
|
classname="StackCollision"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="StackTest">
|
|
|
|
<java
|
|
|
|
classname="StackTest"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="Statistics">
|
|
|
|
<java
|
|
|
|
classname="Statistics"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="UniqueWords">
|
|
|
|
<java
|
|
|
|
classname="UniqueWords"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="UniqueWordsAlphabetic">
|
|
|
|
<java
|
|
|
|
classname="UniqueWordsAlphabetic"
|
|
|
|
classpath="${java.class.path};${basedir};${basedir}/.."
|
|
|
|
dir="../holding/"
|
|
|
|
failonerror="true"
|
|
|
|
fork="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target
|
|
|
|
depends="build"
|
|
|
|
description="Compile and run"
|
|
|
|
name="run">
|
|
|
|
<touch file="failures"/>
|
|
|
|
<antcall target="AdapterMethodIdiom"/>
|
|
|
|
<antcall target="AddingGroups"/>
|
|
|
|
<antcall target="ApplesAndOrangesWithGenerics"/>
|
|
|
|
<antcall target="ApplesAndOrangesWithoutGenerics"/>
|
|
|
|
<antcall target="ArrayIsNotIterable"/>
|
|
|
|
<antcall target="AsListInference"/>
|
|
|
|
<antcall target="CollectionSequence"/>
|
|
|
|
<antcall target="ContainerMethods"/>
|
|
|
|
<antcall target="CrossContainerIteration"/>
|
|
|
|
<antcall target="EnvironmentVariables"/>
|
|
|
|
<antcall target="ForEachCollections"/>
|
|
|
|
<antcall target="GenericsAndUpcasting"/>
|
|
|
|
<antcall target="InterfaceVsIterator"/>
|
|
|
|
<antcall target="IterableClass"/>
|
|
|
|
<antcall target="LinkedListFeatures"/>
|
|
|
|
<antcall target="ListFeatures"/>
|
|
|
|
<antcall target="ListIteration"/>
|
|
|
|
<antcall target="MapOfList"/>
|
|
|
|
<antcall target="ModifyingArraysAsList"/>
|
|
|
|
<antcall target="MultiIterableClass"/>
|
|
|
|
<antcall target="NonCollectionSequence"/>
|
|
|
|
<antcall target="PetMap"/>
|
|
|
|
<antcall target="PrintingContainers"/>
|
|
|
|
<antcall target="PriorityQueueDemo"/>
|
|
|
|
<antcall target="QueueDemo"/>
|
|
|
|
<antcall target="SetOfInteger"/>
|
|
|
|
<antcall target="SetOperations"/>
|
|
|
|
<antcall target="SimpleCollection"/>
|
|
|
|
<antcall target="SimpleIteration"/>
|
|
|
|
<antcall target="SortedSetOfInteger"/>
|
|
|
|
<antcall target="StackCollision"/>
|
|
|
|
<antcall target="StackTest"/>
|
|
|
|
<antcall target="Statistics"/>
|
|
|
|
<antcall target="UniqueWords"/>
|
|
|
|
<antcall target="UniqueWordsAlphabetic"/>
|
|
|
|
<delete file="failures"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target description="delete all byproducts" name="clean">
|
|
|
|
<delete>
|
|
|
|
<fileset dir="${basedir}" includes="**/*.class"/>
|
|
|
|
<fileset dir="${basedir}" includes="**/*Output.txt"/>
|
|
|
|
<fileset dir="${basedir}" includes="**/log.txt"/>
|
|
|
|
<fileset dir="${basedir}" includes="failures"/>
|
|
|
|
</delete>
|
|
|
|
<echo message="clean successful"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
</project>
|
|
|
|
|
|
|
|
|