ProGuard 是一个免费的 Java类文件的压缩

源代码在线查看: stringconstant.java

软件大小: 2056 K
上传用户: eeworm
关键词: ProGuard Java
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*				 * ProGuard -- shrinking, optimization, obfuscation, and preverification				 *             of Java bytecode.				 *				 * Copyright (c) 2002-2007 Eric Lafortune (eric@graphics.cornell.edu)				 *				 * This library is free software; you can redistribute it and/or modify it				 * under the terms of the GNU General Public License as published by the Free				 * Software Foundation; either version 2 of the License, or (at your option)				 * any later version.				 *				 * This library is distributed in the hope that it will be useful, but WITHOUT				 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or				 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License				 * for more details.				 *				 * You should have received a copy of the GNU Lesser General Public License				 * along with this library; if not, write to the Free Software Foundation,				 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA				 */				package proguard.classfile.constant;								import proguard.classfile.*;				import proguard.classfile.constant.visitor.ConstantVisitor;				import proguard.classfile.visitor.*;								import java.io.*;								/**				 * This Constant represents a string constant in the constant pool.				 *				 * @author Eric Lafortune				 */				public class StringConstant extends Constant				{				    public int u2stringIndex;								    /**				     * An extra field pointing to the referenced Clazz object, if this				     * string is being used in Class.forName() or .class constructs.				     * This field is filled out by the {@link				     * proguard.classfile.util.ClassReferenceInitializer ClassReferenceInitializer}.				     * References to library classes are not filled out.				     */				    public Clazz referencedClass;												    /**				     * Creates an uninitialized StringConstant.				     */				    public StringConstant()				    {				    }												    /**				     * Creates a new StringConstant with the given string index.				     * @param u2stringIndex   the index of the string in the constant pool.				     * @param referencedClass the referenced class, if any.				     */				    public StringConstant(int   u2stringIndex,				                          Clazz referencedClass)				    {				        this.u2stringIndex   = u2stringIndex;				        this.referencedClass = referencedClass;				    }												    /**				     * Returns the string value.				     */				    public String getString(Clazz clazz)				    {				        return clazz.getString(u2stringIndex);				    }												    // Implementations for Constant.								    public int getTag()				    {				        return ClassConstants.CONSTANT_String;				    }								    public void accept(Clazz clazz, ConstantVisitor constantVisitor)				    {				        constantVisitor.visitStringConstant(clazz, this);				    }												    /**				     * Lets the referenced class accept the given visitor.				     */				    public void referencedClassAccept(ClassVisitor classVisitor)				    {				        if (referencedClass != null)				        {				            referencedClass.accept(classVisitor);				        }				    }				}							

相关资源