blob: 6ab46276ab71b4d650b3a2aa094a36561a83990e [file] [log] [blame]
/* access.h */
/*
Java Decompiler
Copyright (c) 1994-2003, Pete Ryland.
Distributed under the GNU GPL Version 2.
This package is available from http://pdr.cx/hbd/
*/
#ifndef ACCESS_H
#define ACCESS_H
#include "general.h"
/* The various types of Access flags Java uses */
enum Access {
ACC_PUBLIC = 0x0001, /* visible to everyone */
ACC_PRIVATE = 0x0002, /* visible only to defining class */
ACC_PROTECTED = 0x0004, /* visible to subclasses */
ACC_STATIC = 0x0008, /* instance variable is static */
ACC_FINAL = 0x0010, /* no further subclassing, overriding */
ACC_SYNCHRONIZED = 0x0020, /* wrap method call */
/* in monitor lock */
ACC_THREADSAFE = 0x0040, /* can cache in registers */
ACC_TRANSIENT = 0x0080, /* not persistant */
ACC_NATIVE = 0x0100, /* implemented in C */
ACC_INTERFACE = 0x0200, /* class is an interface */
ACC_ABSTRACT = 0x0400 /* no definition provided */
};
/*
A class representing a set of access flags with
various useful methods.
*/
struct AccessFlags {
u16 flags;
AccessFlags() {
flags = 0;
}
AccessFlags(u16 inflags) {
flags = inflags;
}
void operator =(u16 inflags) {
flags = inflags;
}
void operator +=(Access a) {
flags |= (u16)a;
}
void operator -=(Access a) {
flags &= ~(u16)a;
}
int operator &(u16 intflags) {
return flags & intflags;
}
char *toString(char *buffer);
u16 strlen();
};
#endif