~ubuntu-branches/ubuntu/natty/aspectj/natty

« back to all changes in this revision

Viewing changes to org.aspectj/modules/bcel-builder/src/org/aspectj/apache/bcel/classfile/Deprecated.java

  • Committer: Bazaar Package Importer
  • Author(s): Damien Raude-Morvan
  • Date: 2009-10-04 16:37:23 UTC
  • mfrom: (1.1.3 upstream) (3.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20091004163723-ck4y7j7fhjxskkie
Tags: 1.6.6+dfsg-1
* New upstream release.
  - Update 02_use_gjdoc.diff patch
* Update my email address

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package org.aspectj.apache.bcel.classfile;
2
 
 
3
 
/* ====================================================================
4
 
 * The Apache Software License, Version 1.1
5
 
 *
6
 
 * Copyright (c) 2001 The Apache Software Foundation.  All rights
7
 
 * reserved.
8
 
 *
9
 
 * Redistribution and use in source and binary forms, with or without
10
 
 * modification, are permitted provided that the following conditions
11
 
 * are met:
12
 
 *
13
 
 * 1. Redistributions of source code must retain the above copyright
14
 
 *    notice, this list of conditions and the following disclaimer.
15
 
 *
16
 
 * 2. Redistributions in binary form must reproduce the above copyright
17
 
 *    notice, this list of conditions and the following disclaimer in
18
 
 *    the documentation and/or other materials provided with the
19
 
 *    distribution.
20
 
 *
21
 
 * 3. The end-user documentation included with the redistribution,
22
 
 *    if any, must include the following acknowledgment:
23
 
 *       "This product includes software developed by the
24
 
 *        Apache Software Foundation (http://www.apache.org/)."
25
 
 *    Alternately, this acknowledgment may appear in the software itself,
26
 
 *    if and wherever such third-party acknowledgments normally appear.
27
 
 *
28
 
 * 4. The names "Apache" and "Apache Software Foundation" and
29
 
 *    "Apache BCEL" must not be used to endorse or promote products
30
 
 *    derived from this software without prior written permission. For
31
 
 *    written permission, please contact apache@apache.org.
32
 
 *
33
 
 * 5. Products derived from this software may not be called "Apache",
34
 
 *    "Apache BCEL", nor may "Apache" appear in their name, without
35
 
 *    prior written permission of the Apache Software Foundation.
36
 
 *
37
 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38
 
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39
 
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40
 
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41
 
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42
 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43
 
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44
 
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45
 
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46
 
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47
 
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48
 
 * SUCH DAMAGE.
49
 
 * ====================================================================
50
 
 *
51
 
 * This software consists of voluntary contributions made by many
52
 
 * individuals on behalf of the Apache Software Foundation.  For more
53
 
 * information on the Apache Software Foundation, please see
54
 
 * <http://www.apache.org/>.
55
 
 */
56
 
 
57
 
import  org.aspectj.apache.bcel.Constants;
58
 
import  java.io.*;
59
 
 
60
 
/**
61
 
 * This class is derived from <em>Attribute</em> and denotes that this is a
62
 
 * deprecated method.
63
 
 * It is instantiated from the <em>Attribute.readAttribute()</em> method.
64
 
 *
65
 
 * @version $Id: Deprecated.java,v 1.2 2004/11/19 16:45:18 aclement Exp $
66
 
 * @author  <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
67
 
 * @see     Attribute
68
 
 */
69
 
public final class Deprecated extends Attribute {
70
 
  private byte[] bytes;
71
 
 
72
 
  /**
73
 
   * Initialize from another object. Note that both objects use the same
74
 
   * references (shallow copy). Use clone() for a physical copy.
75
 
   */
76
 
  public Deprecated(Deprecated c) {
77
 
    this(c.getNameIndex(), c.getLength(), c.getBytes(), c.getConstantPool());
78
 
  }    
79
 
 
80
 
  /**
81
 
   * @param name_index Index in constant pool to CONSTANT_Utf8
82
 
   * @param length Content length in bytes
83
 
   * @param bytes Attribute contents
84
 
   * @param constant_pool Array of constants
85
 
   */
86
 
  public Deprecated(int name_index, int length, byte[] bytes,
87
 
                    ConstantPool constant_pool)
88
 
  {
89
 
    super(Constants.ATTR_DEPRECATED, name_index, length, constant_pool);
90
 
    this.bytes = bytes;
91
 
  }    
92
 
 
93
 
  /**
94
 
   * Construct object from file stream.
95
 
   * @param name_index Index in constant pool to CONSTANT_Utf8
96
 
   * @param length Content length in bytes
97
 
   * @param file Input stream
98
 
   * @param constant_pool Array of constants
99
 
   * @throws IOException
100
 
   */
101
 
  Deprecated(int name_index, int length, DataInputStream file,
102
 
             ConstantPool constant_pool) throws IOException
103
 
  {
104
 
    this(name_index, length, (byte [])null, constant_pool);
105
 
 
106
 
    if(length > 0) {
107
 
      bytes = new byte[length];
108
 
      file.readFully(bytes);
109
 
      System.err.println("Deprecated attribute with length > 0");
110
 
    }
111
 
  }    
112
 
 
113
 
  /**
114
 
   * Called by objects that are traversing the nodes of the tree implicitely
115
 
   * defined by the contents of a Java class. I.e., the hierarchy of methods,
116
 
   * fields, attributes, etc. spawns a tree of objects.
117
 
   *
118
 
   * @param v Visitor object
119
 
   */
120
 
  public void accept(Visitor v) {
121
 
    v.visitDeprecated(this);
122
 
  }    
123
 
 
124
 
  /**
125
 
   * Dump source file attribute to file stream in binary format.
126
 
   *
127
 
   * @param file Output file stream
128
 
   * @throws IOException
129
 
   */ 
130
 
  public final void dump(DataOutputStream file) throws IOException
131
 
  {
132
 
    super.dump(file);
133
 
 
134
 
    if(length > 0)
135
 
      file.write(bytes, 0, length);
136
 
  }    
137
 
 
138
 
  /**
139
 
   * @return data bytes.
140
 
   */  
141
 
  public final byte[] getBytes() { return bytes; }    
142
 
 
143
 
  /**
144
 
   * @param bytes.
145
 
   */
146
 
  public final void setBytes(byte[] bytes) {
147
 
    this.bytes = bytes;
148
 
  }    
149
 
 
150
 
  /**
151
 
   * @return attribute name
152
 
   */ 
153
 
  public final String toString() {
154
 
    return Constants.ATTRIBUTE_NAMES[Constants.ATTR_DEPRECATED];
155
 
  }
156
 
 
157
 
  /**
158
 
   * @return deep copy of this attribute
159
 
   */
160
 
  public Attribute copy(ConstantPool constant_pool) {
161
 
    Deprecated c = (Deprecated)clone();
162
 
 
163
 
    if(bytes != null)
164
 
      c.bytes = (byte[])bytes.clone();
165
 
 
166
 
    c.constant_pool = constant_pool;
167
 
    return c;
168
 
  }
169
 
}