当前位置: 首页>>代码示例>>Java>>正文


Java Constants.KNOWN_ATTRIBUTES属性代码示例

本文整理汇总了Java中com.sun.org.apache.bcel.internal.Constants.KNOWN_ATTRIBUTES属性的典型用法代码示例。如果您正苦于以下问题:Java Constants.KNOWN_ATTRIBUTES属性的具体用法?Java Constants.KNOWN_ATTRIBUTES怎么用?Java Constants.KNOWN_ATTRIBUTES使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在com.sun.org.apache.bcel.internal.Constants的用法示例。


在下文中一共展示了Constants.KNOWN_ATTRIBUTES属性的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readAttribute

public static final Attribute readAttribute(DataInputStream file,
                                            ConstantPool constant_pool)
  throws IOException, ClassFormatException
{
  ConstantUtf8 c;
  String       name;
  int          name_index;
  int          length;
  byte         tag = Constants.ATTR_UNKNOWN; // Unknown attribute

  // Get class name from constant pool via `name_index' indirection
  name_index = (int)file.readUnsignedShort();
  c          = (ConstantUtf8)constant_pool.getConstant(name_index,
                                                       Constants.CONSTANT_Utf8);
  name       = c.getBytes();

  // Length of data in bytes
  length = file.readInt();

  // Compare strings to find known attribute
  for(byte i=0; i < Constants.KNOWN_ATTRIBUTES; i++) {
    if(name.equals(Constants.ATTRIBUTE_NAMES[i])) {
      tag = i; // found!
      break;
    }
  }

  // Call proper constructor, depending on `tag'
  switch(tag) {
  case Constants.ATTR_UNKNOWN:
    AttributeReader r = (AttributeReader)readers.get(name);

    if(r != null)
      return r.createAttribute(name_index, length, file, constant_pool);
    else
      return new Unknown(name_index, length, file, constant_pool);

  case Constants.ATTR_CONSTANT_VALUE:
    return new ConstantValue(name_index, length, file, constant_pool);

  case Constants.ATTR_SOURCE_FILE:
    return new SourceFile(name_index, length, file, constant_pool);

  case Constants.ATTR_CODE:
    return new Code(name_index, length, file, constant_pool);

  case Constants.ATTR_EXCEPTIONS:
    return new ExceptionTable(name_index, length, file, constant_pool);

  case Constants.ATTR_LINE_NUMBER_TABLE:
    return new LineNumberTable(name_index, length, file, constant_pool);

  case Constants.ATTR_LOCAL_VARIABLE_TABLE:
    return new LocalVariableTable(name_index, length, file, constant_pool);

  case Constants.ATTR_LOCAL_VARIABLE_TYPE_TABLE:
    return new LocalVariableTypeTable(name_index, length, file, constant_pool);

  case Constants.ATTR_INNER_CLASSES:
    return new InnerClasses(name_index, length, file, constant_pool);

  case Constants.ATTR_SYNTHETIC:
    return new Synthetic(name_index, length, file, constant_pool);

  case Constants.ATTR_DEPRECATED:
    return new Deprecated(name_index, length, file, constant_pool);

  case Constants.ATTR_PMG:
    return new PMGClass(name_index, length, file, constant_pool);

  case Constants.ATTR_SIGNATURE:
    return new Signature(name_index, length, file, constant_pool);

  case Constants.ATTR_STACK_MAP:
    return new StackMap(name_index, length, file, constant_pool);

  default: // Never reached
    throw new IllegalStateException("Ooops! default case reached.");
  }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:80,代码来源:Attribute.java


注:本文中的com.sun.org.apache.bcel.internal.Constants.KNOWN_ATTRIBUTES属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。