/* * 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); } } /*---------------------------------------------------------------------------*/