Home » Xerces-J-src.2.9.1 » dom » util » [javadoc | source]

    1   /* $Id: Assertion.java,v 1.1.1.1 2000/10/07 00:26:24 markd Exp $ */
    2   /*
    3    * The Apache Software License, Version 1.1
    4    * 
    5    * Copyright (c) 1999 The Apache Software Foundation.  All rights 
    6    * reserved.
    7    * 
    8    * Redistribution and use in source and binary forms, with or without
    9    * modification, are permitted provided that the following conditions
   10    * are met:
   11    * 
   12    * 1. Redistributions of source code must retain the above copyright
   13    *    notice, this list of conditions and the following disclaimer. 
   14    * 
   15    * 2. Redistributions in binary form must reproduce the above copyright
   16    *    notice, this list of conditions and the following disclaimer in
   17    *    the documentation and/or other materials provided with the
   18    *    distribution.
   19    * 
   20    * 3. The end-user documentation included with the redistribution,
   21    *    if any, must include the following acknowledgment:  
   22    *       "This product includes software developed by the
   23    *        Apache Software Foundation (http://www.apache.org/)."
   24    *    Alternately, this acknowledgment may appear in the software itself,
   25    *    if and wherever such third-party acknowledgments normally appear.
   26    * 
   27    * 4. The names "Xerces" and "Apache Software Foundation" must
   28    *    not be used to endorse or promote products derived from this
   29    *    software without prior written permission. For written 
   30    *    permission, please contact apache\@apache.org.
   31    * 
   32    * 5. Products derived from this software may not be called "Apache",
   33    *    nor may "Apache" appear in their name, without prior written
   34    *    permission of the Apache Software Foundation.
   35    * 
   36    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   37    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   38    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   39    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   40    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   41    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   42    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   43    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   44    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   45    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   46    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   47    * SUCH DAMAGE.
   48    * ====================================================================
   49    * 
   50    * This software consists of voluntary contributions made by many
   51    * individuals on behalf of the Apache Software Foundation, and was
   52    * originally based on software copyright (c) 1999, International
   53    * Business Machines, Inc., http://www.ibm.com .  For more information
   54    * on the Apache Software Foundation, please see
   55    * <http://www.apache.org/>.
   56    */
   57   
   58   /**
   59    * A simple Assertion class (a hack really ;-) to report the source line number
   60    * where an assertion fails.
   61    */
   62   
   63   
   64   package dom.util;
   65   
   66   import java.io.StringWriter;
   67   import java.io.PrintWriter;
   68   
   69   public class Assertion {
   70   
   71       public static boolean assert(boolean result) {
   72   	return assert(result, null);
   73       }
   74   
   75       public static boolean assert(boolean result, String error) {
   76   	if (!result) {
   77   	    System.err.print("Assertion failed: ");
   78   	    if (error != null) {
   79   		System.err.print(error);
   80   	    }
   81   	    System.err.println();
   82   	    System.err.println(getSourceLocation());
   83   	}
   84   	return result;
   85       }
   86   
   87       public static boolean equals(String s1, String s2) {
   88           boolean result = ((s1 != null && s1.equals(s2))
   89   			  || (s1 == null && s2 == null));
   90   	if (!result) {
   91   	    assert(result);
   92   	    System.err.println("  was: equals(" + s1 + ", \"" + s2 + "\")");
   93   	}
   94   	return result;
   95       }
   96   
   97       public static String getSourceLocation() {
   98   	RuntimeException ex = new RuntimeException("assertion failed");
   99   	StringWriter writer = new StringWriter();
  100   	PrintWriter printer = new PrintWriter(writer);
  101   	ex.printStackTrace(printer);
  102   	String buf = writer.toString();
  103   	// skip the first line as well as every line related to this class
  104   	int index = buf.lastIndexOf("dom.util.Assertion.");
  105   	index = buf.indexOf('\n', index);
  106   	return buf.substring(index + 1);
  107       }
  108   }

Home » Xerces-J-src.2.9.1 » dom » util » [javadoc | source]