Property.avt

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

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

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

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

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

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

package ru.malik.elaborarer.avtoo.lang;

import avt.lang.array.*;

public class Property(OverriddableMember, Cloneable, Measureable, ObjectArray, TypedItem, TypedMember, Fieldoid, AVTOOConstants)
{
    private Method fldReadSynthetic;
    private Method fldWriteSynthetic;
    private Method fldIndexSynthetic;
    private Method fldStoredSynthetic;
    private TypedMember fldReadMember;
    private TypedMember fldWriteMember;
    private TypedMember fldIndexMember;
    private TypedMember fldStoredMember;
    private Constant fldReadConstant;
    private Constant fldIndexConstant;
    private Constant fldStoredConstant;

    public (ClassType parentType, int attributes, Type type, String specialSimpleName, int declarationPosition, int documentationPosition):
        super(parentType, attributes, type, specialSimpleName, declarationPosition, documentationPosition) {
    }

    public String toString() { return Fieldoid.super.toString(); }

    public final boolean hasRead() { return fldReadSynthetic != null; }

    public final boolean hasWrite() { return fldWriteSynthetic != null; }

    public final boolean hasIndex() { return fldIndexSynthetic != null; }

    public final boolean hasStored() { return fldStoredSynthetic != null; }

    public final TypedMember readMember { read = fldReadMember, write = fldReadMember }

    public final TypedMember writeMember { read = fldWriteMember, write = fldWriteMember }

    public final TypedMember indexMember { read = fldIndexMember, write = fldIndexMember }

    public final TypedMember storedMember { read = fldStoredMember, write = fldStoredMember }

    public final Constant readConstant { read = fldReadConstant, write = fldReadConstant }

    public final Constant indexConstant { read = fldIndexConstant, write = fldIndexConstant }

    public final Constant storedConstant { read = fldStoredConstant, write = fldStoredConstant }

    public final Method readSynthetic { read = fldReadSynthetic }

    public final Method writeSynthetic { read = fldWriteSynthetic }

    public final Method indexSynthetic { read = fldIndexSynthetic }

    public final Method storedSynthetic { read = fldStoredSynthetic }

    package final void setReadSynthetic(Method readSynthetic) { fldReadSynthetic = readSynthetic; }

    package final void setWriteSynthetic(Method writeSynthetic) { fldWriteSynthetic = writeSynthetic; }

    package final void setIndexSynthetic(Method indexSynthetic) { fldIndexSynthetic = indexSynthetic; }

    package final void setStoredSynthetic(Method storedSynthetic) { fldStoredSynthetic = storedSynthetic; }

    protected String composeFasmSimpleName() { return specialSimpleName; }

    protected String composeFasmFullName() { return Fieldoid.super.composeFasmFullName(); }
}