/* * Copyright (C) 2011 Ives van der Flaas * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package be.ac.ua.comp.scarletnebula.gui.inputverifiers; import java.util.regex.Pattern; import javax.swing.JComponent; import javax.swing.JTextField; public final class PortRangeInputVerifier extends LoudInputVerifier { public PortRangeInputVerifier(final JTextField textField) { super(textField, "This field must contain single port like 22 or a range e.g. 100-110."); } @Override public boolean verify(final JComponent input) { final String text = ((JTextField) input).getText(); boolean good = true; if (Pattern.matches("[0-9]+|[0-9]+-[0-9]+", text)) { final String parts[] = text.split("-"); for (final String part : parts) { final int port = Integer.decode(part); if (port > 65536) { good = false; break; } } } else { good = false; } return good; } }