<?xml version="1.0" encoding="UTF-8"?>
<!--
  Tom Austin
  Build file for demonstrating modified JS.
-->
<project default="build-and-run">
  <property name="download.url" value="http://www.bias2build.com/thesis" />
  <property name="object.script.name" value="extendedObject.js" />
  <property name="example1.script.name" value="getterSetterBasics.js" />
  <property name="example2.script.name" value="lispList.js" />
  <property name="example3.script.name" value="ruby.js" />
  <property name="example4.script.name" value="secure.js" />
  <property name="example5.script.name" value="multiProto.js" />
  <property name="example6.script.name" value="tracing.js" />
  <property name="test.script.name" value="unitTest.js" />
  
  <!-- Downloads jar and test script and executes the script. -->
  <target name="build-and-run" depends="build,run" />
 
  <!-- Runs the test script -->   
  <target name="run">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${test.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>
  
  <!-- Runs basic getter/setter examples -->
  <target name="getter-setter-examples">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${example1.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>
  
  <!-- Lisp List example. -->
  <target name="lisp-list">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${example2.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>

  <!-- Ruby-like properties example. -->
  <target name="ruby-props">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${example3.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>

  <!-- Secure employee example. -->
  <target name="secure">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${example4.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>
  
  <!-- Secure employee example. -->
  <target name="multi-inh">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${example5.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>
  
  <!-- Secure employee example. -->
  <target name="tracing">
    <java classname="org.mozilla.javascript.tools.shell.Main">
      <arg value="${example6.script.name}" />
      <classpath>
        <pathelement location="./js.jar"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    </java>
  </target>

  <!-- Downloads needed files -->
  <target name="build">
    <!-- Download the modified jar file of rhino and the sample script. -->
    <get dest="./js.jar" src="${download.url}/js.jar" />
    <get dest="./${object.script.name}" src="${download.url}/${object.script.name}" />
    <get dest="./${example1.script.name}" src="${download.url}/${example1.script.name}" />
    <get dest="./${example2.script.name}" src="${download.url}/${example2.script.name}" />
    <get dest="./${example3.script.name}" src="${download.url}/${example3.script.name}" />
    <get dest="./${example4.script.name}" src="${download.url}/${example4.script.name}" />
    <get dest="./${example5.script.name}" src="${download.url}/${example5.script.name}" />
    <get dest="./${example6.script.name}" src="${download.url}/${example6.script.name}" />
    <get dest="./${test.script.name}" src="${download.url}/${test.script.name}" />
  </target>
</project>
