<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>AppSample xref</title>
<link type="text/css" rel="stylesheet" href="../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../apidocs/def/configuration/AppSample.html">View Javadoc</a></div><pre>

<a name="L1" href="#L1">1</a>   <strong>package</strong> def.configuration;
<a name="L2" href="#L2">2</a>   
<a name="L3" href="#L3">3</a>   <em>/**</em>
<a name="L4" href="#L4">4</a>   <em> * @author Maria Odea Ching</em>
<a name="L5" href="#L5">5</a>   <em> */</em>
<a name="L6" href="#L6">6</a>   <strong>public</strong> <strong>class</strong> <a href="../../def/configuration/AppSample.html">AppSample</a>
<a name="L7" href="#L7">7</a>   {
<a name="L8" href="#L8">8</a>       <strong>private</strong> String unusedVar = <span class="string">"UNUSED"</span>;
<a name="L9" href="#L9">9</a>   
<a name="L10" href="#L10">10</a>      <em>/**</em>
<a name="L11" href="#L11">11</a>  <em>     * The main method</em>
<a name="L12" href="#L12">12</a>  <em>     *</em>
<a name="L13" href="#L13">13</a>  <em>     * @param args  an array of strings that contains the arguments</em>
<a name="L14" href="#L14">14</a>  <em>     */</em>
<a name="L15" href="#L15">15</a>      <strong>public</strong> <strong>static</strong> <strong>void</strong> main( String[] args )
<a name="L16" href="#L16">16</a>      {
<a name="L17" href="#L17">17</a>          System.out.println( <span class="string">"Another Sample Application"</span> );
<a name="L18" href="#L18">18</a>      }
<a name="L19" href="#L19">19</a>  
<a name="L20" href="#L20">20</a>      <em>/**</em>
<a name="L21" href="#L21">21</a>  <em>     * Unused method</em>
<a name="L22" href="#L22">22</a>  <em>     *</em>
<a name="L23" href="#L23">23</a>  <em>     * @param unusedParam</em>
<a name="L24" href="#L24">24</a>  <em>     * @return a blank String</em>
<a name="L25" href="#L25">25</a>  <em>     */</em>
<a name="L26" href="#L26">26</a>      <strong>private</strong> String unusedMethod( String unusedParam )
<a name="L27" href="#L27">27</a>      {
<a name="L28" href="#L28">28</a>          System.out.println( <span class="string">"This is just a test."</span> );
<a name="L29" href="#L29">29</a>  
<a name="L30" href="#L30">30</a>          <strong>return</strong> <span class="string">""</span>;
<a name="L31" href="#L31">31</a>      }
<a name="L32" href="#L32">32</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

