XNull.java revision 1113:2fdbfbde3bc0
119304Speter/* 219304Speter * reserved comment block 319304Speter * DO NOT REMOVE OR ALTER! 419304Speter */ 519304Speter/* 619304Speter * Licensed to the Apache Software Foundation (ASF) under one or more 719304Speter * contributor license agreements. See the NOTICE file distributed with 819304Speter * this work for additional information regarding copyright ownership. 919304Speter * The ASF licenses this file to You under the Apache License, Version 2.0 1019304Speter * (the "License"); you may not use this file except in compliance with 1119304Speter * the License. You may obtain a copy of the License at 1219304Speter * 1319304Speter * http://www.apache.org/licenses/LICENSE-2.0 1419304Speter * 1519304Speter * Unless required by applicable law or agreed to in writing, software 1619304Speter * distributed under the License is distributed on an "AS IS" BASIS, 1719304Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1819304Speter * See the License for the specific language governing permissions and 1919304Speter * limitations under the License. 2019304Speter */ 2119304Speter 2219304Speterpackage com.sun.org.apache.xpath.internal.objects; 2319304Speter 2419304Speterimport com.sun.org.apache.xml.internal.dtm.DTM; 2519304Speterimport com.sun.org.apache.xpath.internal.XPathContext; 2619304Speter 2719304Speter/** 2819304Speter * This class represents an XPath null object, and is capable of 2919304Speter * converting the null to other types, such as a string. 3019304Speter * @xsl.usage general 3119304Speter */ 3219304Speterpublic class XNull extends XNodeSet 3319304Speter{ 3419304Speter static final long serialVersionUID = -6841683711458983005L; 3519304Speter 3619304Speter /** 3719304Speter * Create an XObject. 3819304Speter */ 3919304Speter public XNull() 4019304Speter { 4119304Speter super(); 4219304Speter } 4319304Speter 4419304Speter /** 4519304Speter * Tell what kind of class this is. 4619304Speter * 4719304Speter * @return type CLASS_NULL 4819304Speter */ 4919304Speter public int getType() 5019304Speter { 5119304Speter return CLASS_NULL; 5219304Speter } 5319304Speter 5419304Speter /** 5519304Speter * Given a request type, return the equivalent string. 5619304Speter * For diagnostic purposes. 5719304Speter * 5819304Speter * @return type string "#CLASS_NULL" 5919304Speter */ 6019304Speter public String getTypeString() 6119304Speter { 6219304Speter return "#CLASS_NULL"; 6319304Speter } 6419304Speter 6519304Speter /** 6619304Speter * Cast result object to a number. 6719304Speter * 6819304Speter * @return 0.0 6919304Speter */ 7019304Speter 7119304Speter public double num() 7219304Speter { 7319304Speter return 0.0; 7419304Speter } 7519304Speter 7619304Speter /** 7719304Speter * Cast result object to a boolean. 7819304Speter * 7919304Speter * @return false 8019304Speter */ 8119304Speter public boolean bool() 8219304Speter { 8319304Speter return false; 8419304Speter } 8519304Speter 8619304Speter /** 8719304Speter * Cast result object to a string. 8819304Speter * 8919304Speter * @return empty string "" 9019304Speter */ 9119304Speter public String str() 9219304Speter { 9319304Speter return ""; 9419304Speter } 9519304Speter 9619304Speter /** 9719304Speter * Cast result object to a result tree fragment. 9819304Speter * 9919304Speter * @param support XPath context to use for the conversion 10019304Speter * 10119304Speter * @return The object as a result tree fragment. 10219304Speter */ 10319304Speter public int rtf(XPathContext support) 10419304Speter { 10519304Speter // DTM frag = support.createDocumentFragment(); 10619304Speter // %REVIEW% 10719304Speter return DTM.NULL; 10819304Speter } 10919304Speter 11019304Speter// /** 11119304Speter// * Cast result object to a nodelist. 11219304Speter// * 11319304Speter// * @return null 11419304Speter// */ 11519304Speter// public DTMIterator iter() 11619304Speter// { 11719304Speter// return null; 11819304Speter// } 11919304Speter 12019304Speter /** 12119304Speter * Tell if two objects are functionally equal. 12219304Speter * 12319304Speter * @param obj2 Object to compare this to 12419304Speter * 12519304Speter * @return True if the given object is of type CLASS_NULL 12619304Speter */ 12719304Speter public boolean equals(XObject obj2) 12819304Speter { 12919304Speter return obj2.getType() == CLASS_NULL; 13019304Speter } 13119304Speter} 13219304Speter