1 23 24 25 package com.sun.jdo.api.persistence.enhancer.classfile; 26 27 import java.io.*; 28 29 33 34 public class AnnotatedClassAttribute extends ClassAttribute { 35 36 37 public final static String expectedAttrName = "filter.annotatedClass"; 39 40 public final static short expectedAttrVersion = 1; 41 42 43 public final static short generatedFlag = 0x1; 44 45 46 public final static short annotatedFlag = 0x2; 47 48 50 public final static short modifiedFlag = 0x4; 51 52 53 private short attrVersion; 54 55 56 private short annotationFlags; 57 58 59 private long classModTime; 60 61 62 private long classAnnotationTime; 63 64 65 66 public short getVersion() { 67 return attrVersion; 68 } 69 70 public void setVersion(short version) { 71 attrVersion = version; 72 } 73 74 public short getFlags() { 75 return annotationFlags; 76 } 77 78 public void setFlags(short flags) { 79 annotationFlags = flags; 80 } 81 82 public long getModTime() { 83 return classModTime; 84 } 85 86 public void setModTime(long time) { 87 classModTime = time; 88 } 89 90 public long getAnnotationTime() { 91 return classAnnotationTime; 92 } 93 94 public void setAnnotationTime(long time) { 95 classAnnotationTime = time; 96 } 97 98 101 public AnnotatedClassAttribute( 102 ConstUtf8 nameAttr, short version, short annFlags, 103 long modTime, long annTime) { 104 super(nameAttr); 105 attrVersion = version; 106 annotationFlags = annFlags; 107 classModTime = modTime; 108 classAnnotationTime = annTime; 109 } 110 111 112 113 static AnnotatedClassAttribute read( 114 ConstUtf8 attrName, DataInputStream data, ConstantPool pool) 115 throws IOException { 116 short version = data.readShort(); 117 short annFlags = data.readShort(); 118 long modTime = data.readLong(); 119 long annTime = data.readLong(); 120 return new AnnotatedClassAttribute(attrName, version, annFlags, 121 modTime, annTime); 122 } 123 124 void write(DataOutputStream out) throws IOException { 125 out.writeShort(attrName().getIndex()); 126 out.writeShort(20); 127 out.writeShort(attrVersion); 128 out.writeShort(annotationFlags); 129 out.writeLong(classModTime); 130 out.writeLong(classAnnotationTime); 131 } 132 133 void print(PrintStream out, int indent) { 134 ClassPrint.spaces(out, indent); 135 out.println("version: " + attrVersion); out.println(" flags: " + annotationFlags); out.println(" modTime: " + classModTime); out.println(" annTime: " + classAnnotationTime); } 140 } 141 | Popular Tags |