JAVA 所有包

源代码在线查看: constantclass.java

软件大小: 18810 K
上传用户: woshishenb
关键词: JAVA
下载地址: 免注册下载 普通下载 VIP

相关代码

				package com.sun.org.apache.bcel.internal.classfile;								/* ====================================================================				 * The Apache Software License, Version 1.1				 *				 * Copyright (c) 2001 The Apache Software Foundation.  All rights				 * reserved.				 *				 * Redistribution and use in source and binary forms, with or without				 * modification, are permitted provided that the following conditions				 * are met:				 *				 * 1. Redistributions of source code must retain the above copyright				 *    notice, this list of conditions and the following disclaimer.				 *				 * 2. Redistributions in binary form must reproduce the above copyright				 *    notice, this list of conditions and the following disclaimer in				 *    the documentation and/or other materials provided with the				 *    distribution.				 *				 * 3. The end-user documentation included with the redistribution,				 *    if any, must include the following acknowledgment:				 *       "This product includes software developed by the				 *        Apache Software Foundation (http://www.apache.org/)."				 *    Alternately, this acknowledgment may appear in the software itself,				 *    if and wherever such third-party acknowledgments normally appear.				 *				 * 4. The names "Apache" and "Apache Software Foundation" and				 *    "Apache BCEL" must not be used to endorse or promote products				 *    derived from this software without prior written permission. For				 *    written permission, please contact apache@apache.org.				 *				 * 5. Products derived from this software may not be called "Apache",				 *    "Apache BCEL", nor may "Apache" appear in their name, without				 *    prior written permission of the Apache Software Foundation.				 *				 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED				 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES				 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE				 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR				 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,				 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT				 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF				 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND				 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,				 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT				 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF				 * SUCH DAMAGE.				 * ====================================================================				 *				 * This software consists of voluntary contributions made by many				 * individuals on behalf of the Apache Software Foundation.  For more				 * information on the Apache Software Foundation, please see				 * .				 */								import  com.sun.org.apache.bcel.internal.Constants;				import  java.io.*;								/** 				 * This class is derived from the abstract 				 * Constant class 				 * and represents a reference to a (external) class.				 *				 * @version $Id: ConstantClass.java,v 1.1.2.1 2005/07/31 23:46:28 jeffsuttor Exp $				 * @author  M. Dahm				 * @see     Constant				 */				public final class ConstantClass extends Constant implements ConstantObject {				  private int name_index; // Identical to ConstantString except for the name								  /**				   * Initialize from another object.				   */				  public ConstantClass(ConstantClass c) {				    this(c.getNameIndex());				  }    								  /**				   * Initialize instance from file data.				   *				   * @param file Input stream				   * @throws IOException				   */				  ConstantClass(DataInputStream file) throws IOException				  {    				    this(file.readUnsignedShort());				  }    								  /**				   * @param name_index Name index in constant pool.  Should refer to a				   * ConstantUtf8.				   */				  public ConstantClass(int name_index) {				    super(Constants.CONSTANT_Class);				    this.name_index = name_index;				  }    								  /**				   * Called by objects that are traversing the nodes of the tree implicitely				   * defined by the contents of a Java class. I.e., the hierarchy of methods,				   * fields, attributes, etc. spawns a tree of objects.				   *				   * @param v Visitor object				   */				  public void accept(Visitor v) {				    v.visitConstantClass(this);				  }    								  /** 				   * Dump constant class to file stream in binary format.				   *				   * @param file Output file stream				   * @throws IOException				   */ 				  public final void dump(DataOutputStream file) throws IOException				  {				    file.writeByte(tag);				    file.writeShort(name_index);				  }    								  /**				   * @return Name index in constant pool of class name.				   */  				  public final int getNameIndex() { return name_index; }    								  /**				   * @param name_index.				   */				  public final void setNameIndex(int name_index) {				    this.name_index = name_index;				  }    												  /** @return String object				   */				  public Object getConstantValue(ConstantPool cp) {				    Constant c = cp.getConstant(name_index, Constants.CONSTANT_Utf8);				    return ((ConstantUtf8)c).getBytes();				  }								  /** @return dereferenced string				   */				  public String getBytes(ConstantPool cp) {				    return (String)getConstantValue(cp);				  }								  /**				   * @return String representation.				   */				  public final String toString() {				    return super.toString() + "(name_index = " + name_index + ")";				  }				}							

相关资源