<!--
 // 5724-J08, 5724-I63, 5724-H88, 5724-H89, 5655-N02, 5733-W70 (C) COPYRIGHT International Business Machines Corp. 1997, 2012
 // The source code for this program is not published or otherwise divested
 // of its trade secrets, irrespective of what has been deposited with the
 // U.S. Copyright Office
/*
 * @(#) 1.23 WEBUI/ws/code/webui.problemdetermination/src/probdetermination/WEB-INF/validation.xml, WAS.webui.ras, WAS855.WEBUI, cf031428.02 8/22/12 13:53:47 [7/23/14 19:46:58]
 */
-->
<form-validation>
  <formset>
    <form name="com.ibm.ws.console.probdetermination.form.StreamRedirectDetailForm">

      <field property="outFileName" depends="required, validateJVMLogPath">
        <arg0 key="file.name.label"/>
      </field>

  <!--  look in StreamRedirectDetailForm
            <field property="outMaximumFileSize" depends="required,integer,range">
                <arg0 key="max.file.size.label"/>
                <arg1 name="range" key="${var:min}" resource="false"/>
                <arg2 name="range" key="${var:max}" resource="false"/>
                <var>
                    <var-name>min</var-name>
                    <var-value>1</var-value>
                </var>
                <var>
                    <var-name>max</var-name>
                    <var-value>20000</var-value>
                </var>
            </field>
-->
      <field property="errFileName" depends="required, validateJVMLogPath">
        <arg0 key="file.name.label"/>
      </field>

  <!--  look in StreamRedirectDetailForm
            <field property="errMaximumFileSize" depends="required,integer,range">
                <arg0 key="max.file.size.label"/>
                <arg1 name="range" key="${var:min}" resource="false"/>
                <arg2 name="range" key="${var:max}" resource="false"/>
                <var>
                    <var-name>min</var-name>
                    <var-value>1</var-value>
                </var>
                <var>
                    <var-name>max</var-name>
                    <var-value>20000</var-value>
                </var>
            </field>
        
            <field property="outStartTime" depends="integer,range">
                <arg0 key="JVMLogs.time.startTimeOut"/>
                <arg1 name="range" key="${var:min}" resource="false"/>
                <arg2 name="range" key="${var:max}" resource="false"/>
                <var>
                    <var-name>min</var-name>
                    <var-value>1</var-value>
                </var>
                <var>
                    <var-name>max</var-name>
                    <var-value>24</var-value>
                </var>
            </field>
        
        
            <field property="errStartTime" depends="integer,range">
                <arg0 key="JVMLogs.time.startTimeErr"/>
                <arg1 name="range" key="${var:min}" resource="false"/>
                <arg2 name="range" key="${var:max}" resource="false"/>
                <var>
                    <var-name>min</var-name>
                    <var-value>1</var-value>
                </var>
                <var>
                    <var-name>max</var-name>
                    <var-value>24</var-value>
                </var>
            </field>
        
        
            <field property="outRepeatTime" depends="integer,range">
                <arg0 key="JVMLogs.time.repeatTimeOut"/>
                <arg1 name="range" key="${var:min}" resource="false"/>
                <arg2 name="range" key="${var:max}" resource="false"/>
                <var>
                    <var-name>min</var-name>
                    <var-value>1</var-value>
                </var>
                <var>
                    <var-name>max</var-name>
                    <var-value>24</var-value>
                </var>
            </field>
        
        
            <field property="errRepeatTime" depends="integer,range">
                <arg0 key="JVMLogs.time.repeatTimeErr"/>
                <arg1 name="range" key="${var:min}" resource="false"/>
                <arg2 name="range" key="${var:max}" resource="false"/>
                <var>
                    <var-name>min</var-name>
                    <var-value>1</var-value>
                </var>
                <var>
                    <var-name>max</var-name>
                    <var-value>24</var-value>
                </var>
            </field>
-->
      <field property="outMaxHistoricalFiles" depends="required,integer,range">
        <arg0 key="JVMLogs.historicalFilesOut"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>200</var-value>
        </var>
      </field>

      <field property="errMaxHistoricalFiles" depends="required,integer,range">
        <arg0 key="JVMLogs.historicalFilesErr"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>200</var-value>
        </var>
      </field>
    </form>

    <form name="com.ibm.ws.console.probdetermination.form.TraceServiceDetailForm">

      <!-- Validation for Configuration tab -->
      <field property="memoryBufferSize" depends="when,required,integer,range">
        <arg0 key="trace.max.buffer.size"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>4096</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputType</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>MEMORY_BUFFER</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.configuration</var-value>
        </var>
      </field>

      <field property="rolloverSize" depends="when,required,integer,range">
        <arg0 key="trace.max.file.size"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>20000</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputType</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>SPECIFIED_FILE</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.configuration</var-value>
        </var>
      </field>

      <field property="maxNumberOfBackupFiles" depends="when,required,integer,range">
        <arg0 key="trace.max.historical.files"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>50</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputType</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>SPECIFIED_FILE</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.configuration</var-value>
        </var>
      </field>

      <field property="traceFileName" depends="when,required,validateLogPath">
        <arg0 key="trace.file.name"/>
        <var>
          <var-name>mask</var-name>
          <var-value>${file_name}</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputType</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>SPECIFIED_FILE</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.configuration</var-value>
        </var>
      </field>

      <!-- Validation for Runtime tab -->
      <field property="memoryBufferSizeRuntime" depends="when,require,integer,range">
        <arg0 key="trace.max.buffer.size"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>4096</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputTypeRuntime</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>MEMORY_BUFFER</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.runtime</var-value>
        </var>
      </field>

      <field property="dumpFileName" depends="when, mask">
        <arg0 key="trace.dump.file.name"/>
        <var>
          <var-name>mask</var-name>
          <var-value>${file_name}</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputTypeRuntime</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>MEMORY_BUFFER</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.runtime</var-value>
        </var>
      </field>

      <field property="rolloverSizeRuntime" depends="when,required,integer,range">
        <arg0 key="trace.max.file.size"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>20000</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputTypeRuntime</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>SPECIFIED_FILE</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.runtime</var-value>
        </var>
      </field>

      <field property="maxNumberOfBackupFilesRuntime" depends="when,required,integer,range">
        <arg0 key="trace.max.historical.files"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>50</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputTypeRuntime</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>SPECIFIED_FILE</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.runtime</var-value>
        </var>
      </field>

      <field property="traceFileNameRuntime" depends="when,validateLogPath">
        <arg0 key="trace.file.name"/>
        <var>
          <var-name>mask</var-name>
          <var-value>${file_name}</var-value>
        </var>
        <var>
          <var-name>field[0]</var-name>
          <var-value>traceOutputTypeRuntime</var-value>
        </var>
        <var>
          <var-name>fieldTest[0]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[0]</var-name>
          <var-value>SPECIFIED_FILE</var-value>
        </var>
        <var>
          <var-name>field[1]</var-name>
          <var-value>perspective</var-value>
        </var>
        <var>
          <var-name>fieldTest[1]</var-name>
          <var-value>EQUAL</var-value>
        </var>
        <var>
          <var-name>fieldValue[1]</var-name>
          <var-value>tab.runtime</var-value>
        </var>
      </field>
    </form>

    <form name="com.ibm.ws.console.probdetermination.form.RASLoggingServiceDetailForm">

      <field depends="required,validateLogPath" property="name">
        <arg0 key="file.name.label"/>
        <var>
          <var-name>mask</var-name>
          <var-value>${file_name}</var-value>
        </var>
      </field>

      <field property="maxFileSize" depends="required,integer,range">
        <arg0 key="max.file.size.label"/>
        <arg1 name="range" key="${var:min}" resource="false"/>
        <arg2 name="range" key="${var:max}" resource="false"/>
        <var>
          <var-name>min</var-name>
          <var-value>1</var-value>
        </var>
        <var>
          <var-name>max</var-name>
          <var-value>20000</var-value>
        </var>
      </field>
    </form>

    <form name="com.ibm.ws.console.probdetermination.form.OutputRedirectDetailForm">

      <field property="stdoutFilename" depends="required,validateProcessLogPath">
        <arg0 key="stdout.file.name.label"/>
        <var>
          <var-name>mask</var-name>
          <var-value>${path}</var-value>
        </var>
      </field>

      <field property="stderrFilename" depends="required,validateProcessLogPath">
        <arg0 key="stderr.file.name.label"/>
        <var>
          <var-name>mask</var-name>
          <var-value>${path}</var-value>
        </var>
      </field>
    </form>

    <form name="com.ibm.ws.console.probdetermination.PMIRMFilterValueDetailForm">

      <field property="value" depends="required">
        <arg0 key="PMIRMFilterValue.value.displayName"/>
      </field>
    </form>

<!-- New for HPEL -->
    <form name="com.ibm.ws.console.probdetermination.hpelchoose.HPELChooseDetailForm">

      <field property="mode" depends="required,mask">
        <arg0 key="Security.property.name.displayName"/>
        <var>
          <var-name>mask</var-name>
          <var-value>true|false|enabled|disabled</var-value>
        </var>
      </field>
    </form>

  </formset>
  
  <global>
    <validator name="validateLogPath"
    classname="com.ibm.ws.console.probdetermination.RASFieldChecks"
    method="validateLogPath" msg="invalid.logging.path"
    methodParams="java.lang.Object,
            org.apache.commons.validator.ValidatorAction,
            org.apache.commons.validator.Field,
            org.apache.struts.action.ActionErrors,
            javax.servlet.http.HttpServletRequest" />
    <validator name="validateProcessLogPath"
    classname="com.ibm.ws.console.probdetermination.RASFieldChecks"
    method="validateProcessLogPath" msg="invalid.logging.path.process"
    methodParams="java.lang.Object,
            org.apache.commons.validator.ValidatorAction,
            org.apache.commons.validator.Field,
            org.apache.struts.action.ActionErrors,
            javax.servlet.http.HttpServletRequest" />
    <validator name="validateJVMLogPath"
    classname="com.ibm.ws.console.probdetermination.RASFieldChecks"
    method="validateJVMLogPath" msg="invalid.logging.path.jvm"
    methodParams="java.lang.Object,
            org.apache.commons.validator.ValidatorAction,
            org.apache.commons.validator.Field,
            org.apache.struts.action.ActionErrors,
            javax.servlet.http.HttpServletRequest" />
</global>
</form-validation>

