Skip to content

Commit

Permalink
Making it possible to change class access flags.
Browse files Browse the repository at this point in the history
  • Loading branch information
psuter committed Dec 3, 2012
1 parent 70072dd commit 056345f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 21 deletions.
6 changes: 6 additions & 0 deletions src/main/scala/cafebabe/ClassFile.scala
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ class ClassFile(val className: String, parentName: Option[String] = None) extend
attributes = SourceFileAttributeInfo(sourceFileNameIndex, idx) :: attributes
}

/** Sets the access flags for the class. */
def setFlags(flags : U2) : Unit = { accessFlags = flags }

/** Returns the currently set flags. */
def getFlags : U2 = accessFlags

/** Adds a field to the class, using the default flags and no attributes. */
def addField(tpe: String, name: String): FieldHandler = {
val accessFlags: U2 = defaultFieldAccessFlags
Expand Down
42 changes: 21 additions & 21 deletions src/main/scala/cafebabe/Flags.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@ package cafebabe
object Flags {
import ClassFileTypes._

val CLASS_ACC_PUBLIC: U2 = 0x0001
val CLASS_ACC_FINAL: U2 = 0x0010
val CLASS_ACC_SUPER: U2 = 0x0020
val CLASS_ACC_INTERFACE: U2 = 0x0200
val CLASS_ACC_ABSTRACT: U2 = 0x0400
val CLASS_ACC_PUBLIC : U2 = 0x0001
val CLASS_ACC_FINAL : U2 = 0x0010
val CLASS_ACC_SUPER : U2 = 0x0020
val CLASS_ACC_INTERFACE : U2 = 0x0200
val CLASS_ACC_ABSTRACT : U2 = 0x0400

val FIELD_ACC_PUBLIC: U2 = 0x0001
val FIELD_ACC_PRIVATE: U2 = 0x0002
val FIELD_ACC_PROTECTED: U2 = 0x0004
val FIELD_ACC_STATIC: U2 = 0x0008
val FIELD_ACC_FINAL: U2 = 0x0010
val FIELD_ACC_VOLATILE: U2 = 0x0040
val FIELD_ACC_TRANSIENT: U2 = 0x0080
val FIELD_ACC_PUBLIC : U2 = 0x0001
val FIELD_ACC_PRIVATE : U2 = 0x0002
val FIELD_ACC_PROTECTED : U2 = 0x0004
val FIELD_ACC_STATIC : U2 = 0x0008
val FIELD_ACC_FINAL : U2 = 0x0010
val FIELD_ACC_VOLATILE : U2 = 0x0040
val FIELD_ACC_TRANSIENT : U2 = 0x0080

val METHOD_ACC_PUBLIC: U2 = 0x0001
val METHOD_ACC_PRIVATE: U2 = 0x0002
val METHOD_ACC_PROTECTED: U2 = 0x0004
val METHOD_ACC_STATIC: U2 = 0x0008
val METHOD_ACC_FINAL: U2 = 0x0010
val METHOD_ACC_SYNCHRONIZED: U2 = 0x0020
val METHOD_ACC_NATIVE: U2 = 0x0100
val METHOD_ACC_ABSTRACT: U2 = 0x0400
val METHOD_ACC_STRICT: U2 = 0x0800
val METHOD_ACC_PUBLIC : U2 = 0x0001
val METHOD_ACC_PRIVATE : U2 = 0x0002
val METHOD_ACC_PROTECTED : U2 = 0x0004
val METHOD_ACC_STATIC : U2 = 0x0008
val METHOD_ACC_FINAL : U2 = 0x0010
val METHOD_ACC_SYNCHRONIZED : U2 = 0x0020
val METHOD_ACC_NATIVE : U2 = 0x0100
val METHOD_ACC_ABSTRACT : U2 = 0x0400
val METHOD_ACC_STRICT : U2 = 0x0800
}

0 comments on commit 056345f

Please sign in to comment.