1 /* 2 * The contents of this file are subject to the terms of the Common Development 3 * and Distribution License (the License). You may not use this file except in 4 * compliance with the License. 5 * 6 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html 7 * or http://www.netbeans.org/cddl.txt. 8 * 9 * When distributing Covered Code, include this CDDL Header Notice in each file 10 * and include the License file at http://www.netbeans.org/cddl.txt. 11 * If applicable, add the following below the CDDL Header, with the fields 12 * enclosed by brackets [] replaced by your own identifying information: 13 * "Portions Copyrighted [year] [name of copyright owner]" 14 * 15 * The Original Software is NetBeans. The Initial Developer of the Original 16 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun 17 * Microsystems, Inc. All Rights Reserved. 18 */ 19 20 /* 21 * Created on Feb 9, 2005 22 * 23 * To change the template for this generated file go to 24 * Window - Preferences - Java - Code Generation - Code and Comments 25 */ 26 package org.netbeans.modules.xml.xpath.impl; 27 28 import org.apache.commons.jxpath.ri.compiler.Constant; 29 import org.apache.commons.jxpath.ri.compiler.TreeCompiler; 30 31 /** 32 * @author radval 33 * 34 * Extended TreeCompiler for handling of Number values. 35 * We want to distinguish between Long and Double 36 * value of the Constant. 37 */ 38 public class XPathTreeCompiler extends TreeCompiler { 39 40 /** 41 * overriden this method to create 42 * appropriate Long or Double as the value stored in 43 * Constant. 44 */ 45 public Object number(String value) { 46 //distinguish between Long and Double 47 try { 48 int intVal = Integer.parseInt(value); 49 return new Constant(new Long(value)); 50 } catch(NumberFormatException ex) { 51 //Do Nothing 52 } 53 54 return new Constant(new Double(value)); 55 } 56 } 57