javap/src/main/java/org/apidesign/javap/AttrData.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 10 Feb 2013 12:14:40 +0100
branchemul
changeset 706 a48961ff3e6b
parent 144 b06660b614db
permissions -rw-r--r--
Using FastJar to read the content table of JAR files
     1 /*
     2  * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    25 
    26 
    27 
    28 package org.apidesign.javap;
    29 
    30 import java.io.*;
    31 
    32 /**
    33  * Reads and stores attribute information.
    34  *
    35  * @author  Sucheta Dambalkar (Adopted code from jdis)
    36  */
    37 class AttrData {
    38     ClassData cls;
    39     int name_cpx;
    40     int datalen;
    41     byte data[];
    42 
    43     public AttrData (ClassData cls) {
    44         this.cls=cls;
    45     }
    46 
    47     /**
    48      * Reads unknown attribute.
    49      */
    50     public void read(int name_cpx, DataInputStream in) throws IOException {
    51         this.name_cpx=name_cpx;
    52         datalen=in.readInt();
    53         data=new byte[datalen];
    54         in.readFully(data);
    55     }
    56 
    57     /**
    58      * Reads just the name of known attribute.
    59      */
    60     public void read(int name_cpx){
    61         this.name_cpx=name_cpx;
    62     }
    63 
    64     /**
    65      * Returns attribute name.
    66      */
    67     public String getAttrName(){
    68         return cls.getString(name_cpx);
    69     }
    70 
    71     /**
    72      * Returns attribute data.
    73      */
    74     public byte[] getData(){
    75         return data;
    76     }
    77 }