/*
* IzPack - Copyright 2001-2005 Julien Ponge, All Rights Reserved.
*
* http://izpack.org/
* http://izpack.codehaus.org/
*
* Copyright 2003 Elmar Grom
*
* Licensed 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.
*/
package com.izforge.izpack.sample;
import com.izforge.izpack.panels.*;
/*---------------------------------------------------------------------------*/
/**
* This class represents a simple validator for IP addresses to demonstrate
* the implementation of a rule validator that cooperates with the
* <code>RuleInputField</code> used in the <code>UserInputPanel</code>
*
* @version 0.0.1 / 02/19/03
* @author Elmar Grom
*/
/*---------------------------------------------------------------------------*/
public class IPValidator implements Validator
{
/*--------------------------------------------------------------------------*/
/**
* Validates the contend of a <code>RuleInputField</code>. The test is
* intended for a rule input field composed of four sub-fields. The
* combination of their individual content is assumed to represent an IP
* address.
*
* @param client the client object using the services of this validator.
*
* @return <code>true</code> if the validation passes, otherwise <code>false</code>.
*/
/*--------------------------------------------------------------------------*/
public boolean validate (ProcessingClient client)
{
// ----------------------------------------------------
// verify that there are actually four sub-fields. A
// different number would indicate that we are not
// connected with the RuleInputField that we expect
// ----------------------------------------------------
if (client.getNumFields () != 4)
{
return (false);
}
// ----------------------------------------------------
// test each field to make sure it actually contains
// an integer and the value of the integer is beween
// 0 and 255.
// ----------------------------------------------------
boolean isIP = true;
for (int i = 0; i < 4; i++)
{
int value;
try
{
value = Integer.parseInt (client.getFieldContents (i));
if ((value < 0) || (value > 255))
{
isIP = false;
}
}
catch (Throwable exception)
{
isIP = false;
}
}
return (isIP);
}
}
/*---------------------------------------------------------------------------*/