KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > izforge > izpack > util > HostAddressValidator


1 /*
2  * IzPack - Copyright 2001-2007 Julien Ponge, All Rights Reserved.
3  *
4  * http://www.izforge.com/izpack/
5  * http://developer.berlios.de/projects/izpack/
6  *
7  * Copyright 2004 Thorsten Kamann
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */

21
22 package com.izforge.izpack.util;
23
24 import java.net.InetAddress JavaDoc;
25 import java.net.ServerSocket JavaDoc;
26
27 import com.izforge.izpack.panels.ProcessingClient;
28 import com.izforge.izpack.panels.Validator;
29
30 /**
31  * A validator to check wheter a host:port is available (free).
32  *
33  * This validator can be used for rule input fields in the UserInputPanel to make sure that the port
34  * the user entered is not in use.
35  *
36  * @author thorque
37  */

38 public class HostAddressValidator implements Validator
39 {
40
41     public boolean validate(ProcessingClient client)
42     {
43         InetAddress JavaDoc inet = null;
44         String JavaDoc host = "";
45         int port = 0;
46         boolean retValue = false;
47
48         try
49         {
50             host = client.getFieldContents(0);
51             port = Integer.parseInt(client.getFieldContents(1));
52         }
53         catch (Exception JavaDoc e)
54         {
55             return false;
56         }
57
58         try
59         {
60             inet = InetAddress.getByName(host);
61             ServerSocket JavaDoc socket = new ServerSocket JavaDoc(port, 0, inet);
62             retValue = socket.getLocalPort() > 0;
63             socket.close();
64         }
65         catch (Exception JavaDoc ex)
66         {
67             retValue = false;
68         }
69         return retValue;
70     }
71
72 }
73
Popular Tags