0N/A/*
157N/A * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
157N/A * published by the Free Software Foundation. Oracle designates this
0N/A * particular file as subject to the "Classpath" exception as provided
157N/A * by Oracle in the LICENSE file that accompanied this code.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
157N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
157N/A * or visit www.oracle.com if you need additional information or have any
157N/A * questions.
0N/A */
0N/A
0N/Apackage com.sun.tools.classfile;
0N/A
0N/Aimport java.io.IOException;
0N/A
0N/A/**
0N/A * See JVMS, section 4.8.16 and 4.8.17.
0N/A *
0N/A * <p><b>This is NOT part of any supported API.
0N/A * If you write code that depends on this, you do so at your own risk.
0N/A * This code and its internal interfaces are subject to change or
0N/A * deletion without notice.</b>
0N/A */
0N/Apublic abstract class RuntimeAnnotations_attribute extends Attribute {
0N/A protected RuntimeAnnotations_attribute(ClassReader cr, int name_index, int length)
0N/A throws IOException, Annotation.InvalidAnnotation {
0N/A super(name_index, length);
0N/A int num_annotations = cr.readUnsignedShort();
0N/A annotations = new Annotation[num_annotations];
0N/A for (int i = 0; i < annotations.length; i++)
0N/A annotations[i] = new Annotation(cr);
0N/A }
0N/A
0N/A protected RuntimeAnnotations_attribute(int name_index, Annotation[] annotations) {
0N/A super(name_index, length(annotations));
0N/A this.annotations = annotations;
0N/A }
0N/A
0N/A private static int length(Annotation[] annos) {
0N/A int n = 2;
0N/A for (Annotation anno: annos)
0N/A n += anno.length();
0N/A return n;
0N/A }
0N/A
0N/A public final Annotation[] annotations;
0N/A}
0N/A