1 /* 2 * Copyright (c) 2003-2008 by Cosylab d. d. 3 * 4 * This file is part of CosyBeans-Common. 5 * 6 * CosyBeans-Common is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * CosyBeans-Common is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with CosyBeans-Common. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package com.cosylab.gui.components.numberfield; 21 22 import com.cosylab.util.StringUtilities; 23 24 25 /** 26 * This is the implementation of the <code>AbstractNumberDocument</code> class 27 * implementing the floating point parser. 28 * 29 * @author <a href="mailto:ales.pucelj@cosylab.com">Ales Pucelj</a> 30 * @version $id$ 31 */ 32 public class DoubleDocument extends AbstractNumberDocument 33 { 34 private static final long serialVersionUID = 1L; 35 36 /** 37 * Constructor for DoubleDocument. 38 */ 39 public DoubleDocument() 40 { 41 super(); 42 } 43 44 /** 45 * Parses the string as a floating point value. 46 * 47 * @param s String 48 * 49 * @return Number 50 * 51 * @see AbstractNumberDocument#parseNumber(String) 52 */ 53 protected Number parseNumber(String s) 54 { 55 if (s==null || s.length()<1) { 56 return null; 57 } 58 double newValue; 59 60 newValue = StringUtilities.parseDouble(s); 61 62 if (Double.isInfinite(Math.abs(newValue))) { 63 return null; 64 } 65 66 if (Double.isNaN(newValue)) { 67 return null; 68 } 69 70 return new Double(newValue); 71 } 72 } 73 74 /* __oOo__ */