1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.jdo.impl.enhancer.classfile;
20
21 import java.io.*;
22
23 /***
24 * AnnotatedClassAttribute represents a class level attribute
25 * class file which identifies the level of annotation of the class.
26 */
27 public class AnnotatedClassAttribute extends ClassAttribute {
28
29
30 public final static String expectedAttrName = "filter.annotatedClass";
31
32
33 public final static short expectedAttrVersion = 1;
34
35
36 public final static short generatedFlag = 0x1;
37
38
39 public final static short annotatedFlag = 0x2;
40
41
42
43 public final static short modifiedFlag = 0x4;
44
45
46 private short attrVersion;
47
48
49 private short annotationFlags;
50
51
52 private long classModTime;
53
54
55 private long classAnnotationTime;
56
57
58
59 public short getVersion() {
60 return attrVersion;
61 }
62
63 public void setVersion(short version) {
64 attrVersion = version;
65 }
66
67 public short getFlags() {
68 return annotationFlags;
69 }
70
71 public void setFlags(short flags) {
72 annotationFlags = flags;
73 }
74
75 public long getModTime() {
76 return classModTime;
77 }
78
79 public void setModTime(long time) {
80 classModTime = time;
81 }
82
83 public long getAnnotationTime() {
84 return classAnnotationTime;
85 }
86
87 public void setAnnotationTime(long time) {
88 classAnnotationTime = time;
89 }
90
91 /***
92 * Constructor
93 */
94 public AnnotatedClassAttribute(
95 ConstUtf8 nameAttr, short version, short annFlags,
96 long modTime, long annTime) {
97 super(nameAttr);
98 attrVersion = version;
99 annotationFlags = annFlags;
100 classModTime = modTime;
101 classAnnotationTime = annTime;
102 }
103
104 /* package local methods *//package-summary/html">class="comment"> package local methods *//package-summary.html">
105
106 static AnnotatedClassAttribute read(
107 ConstUtf8 attrName, DataInputStream data, ConstantPool pool)
108 throws IOException {
109 short version = data.readShort();
110 short annFlags = data.readShort();
111 long modTime = data.readLong();
112 long annTime = data.readLong();
113 return new AnnotatedClassAttribute(attrName, version, annFlags,
114 modTime, annTime);
115 }
116
117 void write(DataOutputStream out) throws IOException {
118 out.writeShort(attrName().getIndex());
119 out.writeShort(20);
120 out.writeShort(attrVersion);
121 out.writeShort(annotationFlags);
122 out.writeLong(classModTime);
123 out.writeLong(classAnnotationTime);
124 }
125
126 void print(PrintStream out, int indent) {
127 ClassPrint.spaces(out, indent);
128 out.println("version: " + attrVersion);
129 out.println(" flags: " + annotationFlags);
130 out.println(" modTime: " + classModTime);
131 out.println(" annTime: " + classAnnotationTime);
132 }
133 }