KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > vladium > jcd > cls > attribute > SourceFileAttribute_info


1 /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
2  *
3  * This program and the accompanying materials are made available under
4  * the terms of the Common Public License v1.0 which accompanies this distribution,
5  * and is available at http://www.eclipse.org/legal/cpl-v10.html
6  *
7  * $Id: SourceFileAttribute_info.java,v 1.1.1.1 2004/05/09 16:57:48 vlad_r Exp $
8  */

9 package com.vladium.jcd.cls.attribute;
10
11 import java.io.IOException JavaDoc;
12
13 import com.vladium.jcd.cls.ClassDef;
14 import com.vladium.jcd.cls.constant.CONSTANT_Utf8_info;
15 import com.vladium.jcd.lib.UDataInputStream;
16 import com.vladium.jcd.lib.UDataOutputStream;
17
18 // ----------------------------------------------------------------------------
19
/**
20  *
21  * @author (C) 2001, Vlad Roubtsov
22  */

23 public
24 final class SourceFileAttribute_info extends Attribute_info
25 {
26     // public: ................................................................
27

28     
29     public int m_sourcefile_index;
30     
31     
32     public SourceFileAttribute_info (final int attribute_name_index)
33     {
34         super (attribute_name_index, 0);
35     }
36     
37     
38     public long length ()
39     {
40         return 8;
41     }
42     
43     public CONSTANT_Utf8_info getSourceFile (final ClassDef cls)
44     {
45         return (CONSTANT_Utf8_info) cls.getConstants ().get (m_sourcefile_index);
46     }
47     
48     // Visitor:
49

50     public void accept (final IAttributeVisitor visitor, final Object JavaDoc ctx)
51     {
52         visitor.visit (this, ctx);
53     }
54     
55     public String JavaDoc toString ()
56     {
57         return "SourceFileAttribute_info: [attribute_name_index = " + m_name_index + ", attribute_length = " + m_attribute_length + ']';
58     }
59     
60     // Cloneable:
61

62     /**
63      * Performs a deep copy.
64      */

65     public Object JavaDoc clone ()
66     {
67         return super.clone ();
68     }
69        
70     // IClassFormatOutput:
71

72     public void writeInClassFormat (final UDataOutputStream out) throws IOException JavaDoc
73     {
74         super.writeInClassFormat (out);
75         
76         out.writeU2 (m_sourcefile_index);
77     }
78     
79     // protected: .............................................................
80

81     // package: ...............................................................
82

83
84     SourceFileAttribute_info (final int attribute_name_index, final long attribute_length,
85                               final UDataInputStream bytes)
86         throws IOException JavaDoc
87     {
88         super (attribute_name_index, attribute_length);
89         
90         m_sourcefile_index = bytes.readU2 ();
91     }
92     
93     // private: ...............................................................
94

95 } // end of class
96
// ----------------------------------------------------------------------------
97

98
Popular Tags