ReflectiveObject.avt

Переключить прокрутку окна
Загрузить этот исходный код

/*
    Реализация среды исполнения языка программирования
    Объектно-ориентированный продвинутый векторный транслятор

    Copyright © 2021, 2024 Малик Разработчик

    Это свободная программа: вы можете перераспространять ее и/или изменять
    ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
    в каком она была опубликована Фондом свободного программного обеспечения;
    либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.

    Эта программа распространяется в надежде, что она будет полезной,
    но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
    или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
    общественной лицензии GNU.

    Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
    вместе с этой программой. Если это не так, см.
    <https://www.gnu.org/licenses/>.
*/

package avt.lang;

public abstract class ReflectiveObject(Object)
{
    public static final int PRIVATE         = 0x00;
    public static final int DEFAULT         = 0x02;
    public static final int SOURCE          = 0x02;
    public static final int PACKAGE         = 0x04;
    public static final int PROTECTED       = 0x05;
    public static final int PUBLIC          = 0x06;
    public static final int PUBLISHED       = 0x07;
    public static final int VISIBILITY_MASK = 0x07;
    public static final int ABSTRACT        = 0x08;
    public static final int FINAL           = 0x10;

    protected final int fldAttributes;

    protected () {  }

    protected (int attributes) { fldAttributes = attributes; }

    public boolean isAbstract() { return (fldAttributes & ABSTRACT) != 0; }

    public boolean isFinal() { return (fldAttributes & FINAL) != 0; }

    public abstract String simpleName { read }

    public int attributes { read = fldAttributes }

    public int visibility { read = fldAttributes & VISIBILITY_MASK }
}