All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ciera.tool.sql.architecture.statement.impl.StatementImpl Maven / Gradle / Ivy

There is a newer version: 2.7.3
Show newest version
package io.ciera.tool.sql.architecture.statement.impl;


import io.ciera.runtime.instanceloading.AttributeChangedDelta;
import io.ciera.runtime.instanceloading.InstanceCreatedDelta;
import io.ciera.runtime.summit.application.IRunContext;
import io.ciera.runtime.summit.classes.IInstanceIdentifier;
import io.ciera.runtime.summit.classes.InstanceIdentifier;
import io.ciera.runtime.summit.classes.ModelInstance;
import io.ciera.runtime.summit.exceptions.EmptyInstanceException;
import io.ciera.runtime.summit.exceptions.InstancePopulationException;
import io.ciera.runtime.summit.exceptions.XtumlException;
import io.ciera.runtime.summit.types.IWhere;
import io.ciera.runtime.summit.types.IXtumlType;
import io.ciera.runtime.summit.types.StringUtil;
import io.ciera.runtime.summit.types.UniqueId;
import io.ciera.tool.Sql;
import io.ciera.tool.sql.architecture.expression.Expression;
import io.ciera.tool.sql.architecture.expression.ExpressionSet;
import io.ciera.tool.sql.architecture.expression.impl.ExpressionSetImpl;
import io.ciera.tool.sql.architecture.invocable.CodeBlock;
import io.ciera.tool.sql.architecture.invocable.impl.CodeBlockImpl;
import io.ciera.tool.sql.architecture.statement.BreakSmt;
import io.ciera.tool.sql.architecture.statement.ContinueSmt;
import io.ciera.tool.sql.architecture.statement.DeleteSmt;
import io.ciera.tool.sql.architecture.statement.ExpressionAsStatement;
import io.ciera.tool.sql.architecture.statement.Finalization;
import io.ciera.tool.sql.architecture.statement.FinalizationSet;
import io.ciera.tool.sql.architecture.statement.ForSmt;
import io.ciera.tool.sql.architecture.statement.Generate;
import io.ciera.tool.sql.architecture.statement.Halt;
import io.ciera.tool.sql.architecture.statement.IfSmt;
import io.ciera.tool.sql.architecture.statement.NullSmt;
import io.ciera.tool.sql.architecture.statement.RelateSmt;
import io.ciera.tool.sql.architecture.statement.ReturnSmt;
import io.ciera.tool.sql.architecture.statement.Statement;
import io.ciera.tool.sql.architecture.statement.UnrelateSmt;
import io.ciera.tool.sql.architecture.statement.Variable;
import io.ciera.tool.sql.architecture.statement.VariableSet;
import io.ciera.tool.sql.architecture.statement.WhileSmt;
import io.ciera.tool.sql.architecture.statement.impl.BreakSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.ContinueSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.DeleteSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.ExpressionAsStatementImpl;
import io.ciera.tool.sql.architecture.statement.impl.FinalizationSetImpl;
import io.ciera.tool.sql.architecture.statement.impl.ForSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.GenerateImpl;
import io.ciera.tool.sql.architecture.statement.impl.HaltImpl;
import io.ciera.tool.sql.architecture.statement.impl.IfSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.NullSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.RelateSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.ReturnSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.StatementImpl;
import io.ciera.tool.sql.architecture.statement.impl.UnrelateSmtImpl;
import io.ciera.tool.sql.architecture.statement.impl.VariableSetImpl;
import io.ciera.tool.sql.architecture.statement.impl.WhileSmtImpl;


public class StatementImpl extends ModelInstance implements Statement {

    public static final String KEY_LETTERS = "Statement";
    public static final Statement EMPTY_STATEMENT = new EmptyStatement();

    private Sql context;

    // constructors
    private StatementImpl( Sql context ) {
        this.context = context;
        ref_parent_name = "";
        ref_parent_package = "";
        ref_body_name = "";
        ref_block_number = "";
        m_statement_number = "";
        ref_next_statement_number = "";
        m_oal = "";
        m_prefix = "";
        R450_is_contained_by_CodeBlock_inst = CodeBlockImpl.EMPTY_CODEBLOCK;
        R451_is_a_BreakSmt_inst = BreakSmtImpl.EMPTY_BREAKSMT;
        R451_is_a_ContinueSmt_inst = ContinueSmtImpl.EMPTY_CONTINUESMT;
        R451_is_a_DeleteSmt_inst = DeleteSmtImpl.EMPTY_DELETESMT;
        R451_is_a_ExpressionAsStatement_inst = ExpressionAsStatementImpl.EMPTY_EXPRESSIONASSTATEMENT;
        R451_is_a_ForSmt_inst = ForSmtImpl.EMPTY_FORSMT;
        R451_is_a_Generate_inst = GenerateImpl.EMPTY_GENERATE;
        R451_is_a_Halt_inst = HaltImpl.EMPTY_HALT;
        R451_is_a_IfSmt_inst = IfSmtImpl.EMPTY_IFSMT;
        R451_is_a_NullSmt_inst = NullSmtImpl.EMPTY_NULLSMT;
        R451_is_a_RelateSmt_inst = RelateSmtImpl.EMPTY_RELATESMT;
        R451_is_a_ReturnSmt_inst = ReturnSmtImpl.EMPTY_RETURNSMT;
        R451_is_a_UnrelateSmt_inst = UnrelateSmtImpl.EMPTY_UNRELATESMT;
        R451_is_a_WhileSmt_inst = WhileSmtImpl.EMPTY_WHILESMT;
        R457_declares_Variable_set = new VariableSetImpl();
        R477_executes_after_Statement_inst = StatementImpl.EMPTY_STATEMENT;
        R477_executes_before_Statement_inst = StatementImpl.EMPTY_STATEMENT;
        R485_finalizes_Finalization_set = new FinalizationSetImpl();
        R775_may_contain_Expression_set = new ExpressionSetImpl();
    }

    private StatementImpl( Sql context, UniqueId instanceId, String ref_parent_name, String ref_parent_package, String ref_body_name, String ref_block_number, String m_statement_number, String ref_next_statement_number, String m_oal, String m_prefix ) {
        super(instanceId);
        this.context = context;
        this.ref_parent_name = ref_parent_name;
        this.ref_parent_package = ref_parent_package;
        this.ref_body_name = ref_body_name;
        this.ref_block_number = ref_block_number;
        this.m_statement_number = m_statement_number;
        this.ref_next_statement_number = ref_next_statement_number;
        this.m_oal = m_oal;
        this.m_prefix = m_prefix;
        R450_is_contained_by_CodeBlock_inst = CodeBlockImpl.EMPTY_CODEBLOCK;
        R451_is_a_BreakSmt_inst = BreakSmtImpl.EMPTY_BREAKSMT;
        R451_is_a_ContinueSmt_inst = ContinueSmtImpl.EMPTY_CONTINUESMT;
        R451_is_a_DeleteSmt_inst = DeleteSmtImpl.EMPTY_DELETESMT;
        R451_is_a_ExpressionAsStatement_inst = ExpressionAsStatementImpl.EMPTY_EXPRESSIONASSTATEMENT;
        R451_is_a_ForSmt_inst = ForSmtImpl.EMPTY_FORSMT;
        R451_is_a_Generate_inst = GenerateImpl.EMPTY_GENERATE;
        R451_is_a_Halt_inst = HaltImpl.EMPTY_HALT;
        R451_is_a_IfSmt_inst = IfSmtImpl.EMPTY_IFSMT;
        R451_is_a_NullSmt_inst = NullSmtImpl.EMPTY_NULLSMT;
        R451_is_a_RelateSmt_inst = RelateSmtImpl.EMPTY_RELATESMT;
        R451_is_a_ReturnSmt_inst = ReturnSmtImpl.EMPTY_RETURNSMT;
        R451_is_a_UnrelateSmt_inst = UnrelateSmtImpl.EMPTY_UNRELATESMT;
        R451_is_a_WhileSmt_inst = WhileSmtImpl.EMPTY_WHILESMT;
        R457_declares_Variable_set = new VariableSetImpl();
        R477_executes_after_Statement_inst = StatementImpl.EMPTY_STATEMENT;
        R477_executes_before_Statement_inst = StatementImpl.EMPTY_STATEMENT;
        R485_finalizes_Finalization_set = new FinalizationSetImpl();
        R775_may_contain_Expression_set = new ExpressionSetImpl();
    }

    public static Statement create( Sql context ) throws XtumlException {
        Statement newStatement = new StatementImpl( context );
        if ( context.addInstance( newStatement ) ) {
            newStatement.getRunContext().addChange(new InstanceCreatedDelta(newStatement, KEY_LETTERS));
            return newStatement;
        }
        else throw new InstancePopulationException( "Instance already exists within this population." );
    }

    public static Statement create( Sql context, String ref_parent_name, String ref_parent_package, String ref_body_name, String ref_block_number, String m_statement_number, String ref_next_statement_number, String m_oal, String m_prefix ) throws XtumlException {
        return create(context, UniqueId.random(), ref_parent_name, ref_parent_package, ref_body_name, ref_block_number, m_statement_number, ref_next_statement_number, m_oal, m_prefix);
    }

    public static Statement create( Sql context, UniqueId instanceId, String ref_parent_name, String ref_parent_package, String ref_body_name, String ref_block_number, String m_statement_number, String ref_next_statement_number, String m_oal, String m_prefix ) throws XtumlException {
        Statement newStatement = new StatementImpl( context, instanceId, ref_parent_name, ref_parent_package, ref_body_name, ref_block_number, m_statement_number, ref_next_statement_number, m_oal, m_prefix );
        if ( context.addInstance( newStatement ) ) {
            return newStatement;
        }
        else throw new InstancePopulationException( "Instance already exists within this population." );
    }



    // attributes
    private String ref_parent_name;
    @Override
    public String getParent_name() throws XtumlException {
        checkLiving();
        return ref_parent_name;
    }
    @Override
    public void setParent_name(String ref_parent_name) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(ref_parent_name, this.ref_parent_name)) {
            final String oldValue = this.ref_parent_name;
            this.ref_parent_name = ref_parent_name;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "ref_parent_name", oldValue, this.ref_parent_name));
            if ( !R451_is_a_ExpressionAsStatement().isEmpty() ) R451_is_a_ExpressionAsStatement().setParent_name( ref_parent_name );
            if ( !R451_is_a_NullSmt().isEmpty() ) R451_is_a_NullSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_WhileSmt().isEmpty() ) R451_is_a_WhileSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_RelateSmt().isEmpty() ) R451_is_a_RelateSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_IfSmt().isEmpty() ) R451_is_a_IfSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_DeleteSmt().isEmpty() ) R451_is_a_DeleteSmt().setParent_name( ref_parent_name );
            if ( !R477_executes_after_Statement().isEmpty() ) R477_executes_after_Statement().setParent_name( ref_parent_name );
            if ( !R451_is_a_Halt().isEmpty() ) R451_is_a_Halt().setParent_name( ref_parent_name );
            if ( !R451_is_a_ForSmt().isEmpty() ) R451_is_a_ForSmt().setParent_name( ref_parent_name );
            if ( !R485_finalizes_Finalization().isEmpty() ) R485_finalizes_Finalization().setParent_name( ref_parent_name );
            if ( !R457_declares_Variable().isEmpty() ) R457_declares_Variable().setParent_name( ref_parent_name );
            if ( !R451_is_a_UnrelateSmt().isEmpty() ) R451_is_a_UnrelateSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_BreakSmt().isEmpty() ) R451_is_a_BreakSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_ReturnSmt().isEmpty() ) R451_is_a_ReturnSmt().setParent_name( ref_parent_name );
            if ( !R451_is_a_Generate().isEmpty() ) R451_is_a_Generate().setParent_name( ref_parent_name );
            if ( !R775_may_contain_Expression().isEmpty() ) R775_may_contain_Expression().setParent_name( ref_parent_name );
            if ( !R451_is_a_ContinueSmt().isEmpty() ) R451_is_a_ContinueSmt().setParent_name( ref_parent_name );
        }
    }
    private String ref_parent_package;
    @Override
    public void setParent_package(String ref_parent_package) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(ref_parent_package, this.ref_parent_package)) {
            final String oldValue = this.ref_parent_package;
            this.ref_parent_package = ref_parent_package;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "ref_parent_package", oldValue, this.ref_parent_package));
            if ( !R451_is_a_RelateSmt().isEmpty() ) R451_is_a_RelateSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_UnrelateSmt().isEmpty() ) R451_is_a_UnrelateSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_DeleteSmt().isEmpty() ) R451_is_a_DeleteSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_BreakSmt().isEmpty() ) R451_is_a_BreakSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_ForSmt().isEmpty() ) R451_is_a_ForSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_WhileSmt().isEmpty() ) R451_is_a_WhileSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_ExpressionAsStatement().isEmpty() ) R451_is_a_ExpressionAsStatement().setParent_package( ref_parent_package );
            if ( !R457_declares_Variable().isEmpty() ) R457_declares_Variable().setParent_package( ref_parent_package );
            if ( !R451_is_a_Halt().isEmpty() ) R451_is_a_Halt().setParent_package( ref_parent_package );
            if ( !R451_is_a_ContinueSmt().isEmpty() ) R451_is_a_ContinueSmt().setParent_package( ref_parent_package );
            if ( !R775_may_contain_Expression().isEmpty() ) R775_may_contain_Expression().setParent_package( ref_parent_package );
            if ( !R477_executes_after_Statement().isEmpty() ) R477_executes_after_Statement().setParent_package( ref_parent_package );
            if ( !R485_finalizes_Finalization().isEmpty() ) R485_finalizes_Finalization().setParent_package( ref_parent_package );
            if ( !R451_is_a_ReturnSmt().isEmpty() ) R451_is_a_ReturnSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_Generate().isEmpty() ) R451_is_a_Generate().setParent_package( ref_parent_package );
            if ( !R451_is_a_IfSmt().isEmpty() ) R451_is_a_IfSmt().setParent_package( ref_parent_package );
            if ( !R451_is_a_NullSmt().isEmpty() ) R451_is_a_NullSmt().setParent_package( ref_parent_package );
        }
    }
    @Override
    public String getParent_package() throws XtumlException {
        checkLiving();
        return ref_parent_package;
    }
    private String ref_body_name;
    @Override
    public void setBody_name(String ref_body_name) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(ref_body_name, this.ref_body_name)) {
            final String oldValue = this.ref_body_name;
            this.ref_body_name = ref_body_name;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "ref_body_name", oldValue, this.ref_body_name));
            if ( !R477_executes_after_Statement().isEmpty() ) R477_executes_after_Statement().setBody_name( ref_body_name );
            if ( !R451_is_a_Halt().isEmpty() ) R451_is_a_Halt().setName( ref_body_name );
            if ( !R451_is_a_UnrelateSmt().isEmpty() ) R451_is_a_UnrelateSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_ForSmt().isEmpty() ) R451_is_a_ForSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_DeleteSmt().isEmpty() ) R451_is_a_DeleteSmt().setBody_name( ref_body_name );
            if ( !R457_declares_Variable().isEmpty() ) R457_declares_Variable().setBody_name( ref_body_name );
            if ( !R451_is_a_BreakSmt().isEmpty() ) R451_is_a_BreakSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_ExpressionAsStatement().isEmpty() ) R451_is_a_ExpressionAsStatement().setBody_name( ref_body_name );
            if ( !R485_finalizes_Finalization().isEmpty() ) R485_finalizes_Finalization().setBody_name( ref_body_name );
            if ( !R451_is_a_ContinueSmt().isEmpty() ) R451_is_a_ContinueSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_RelateSmt().isEmpty() ) R451_is_a_RelateSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_NullSmt().isEmpty() ) R451_is_a_NullSmt().setName( ref_body_name );
            if ( !R451_is_a_IfSmt().isEmpty() ) R451_is_a_IfSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_WhileSmt().isEmpty() ) R451_is_a_WhileSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_ReturnSmt().isEmpty() ) R451_is_a_ReturnSmt().setBody_name( ref_body_name );
            if ( !R451_is_a_Generate().isEmpty() ) R451_is_a_Generate().setBody_name( ref_body_name );
            if ( !R775_may_contain_Expression().isEmpty() ) R775_may_contain_Expression().setBody_name( ref_body_name );
        }
    }
    @Override
    public String getBody_name() throws XtumlException {
        checkLiving();
        return ref_body_name;
    }
    private String ref_block_number;
    @Override
    public void setBlock_number(String ref_block_number) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(ref_block_number, this.ref_block_number)) {
            final String oldValue = this.ref_block_number;
            this.ref_block_number = ref_block_number;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "ref_block_number", oldValue, this.ref_block_number));
            if ( !R451_is_a_Halt().isEmpty() ) R451_is_a_Halt().setBlock_number( ref_block_number );
            if ( !R457_declares_Variable().isEmpty() ) R457_declares_Variable().setBlock_number( ref_block_number );
            if ( !R451_is_a_IfSmt().isEmpty() ) R451_is_a_IfSmt().setBlock_number( ref_block_number );
            if ( !R775_may_contain_Expression().isEmpty() ) R775_may_contain_Expression().setBlock_number( ref_block_number );
            if ( !R451_is_a_NullSmt().isEmpty() ) R451_is_a_NullSmt().setBlock_number( ref_block_number );
            if ( !R451_is_a_RelateSmt().isEmpty() ) R451_is_a_RelateSmt().setBlock_number( ref_block_number );
            if ( !R451_is_a_Generate().isEmpty() ) R451_is_a_Generate().setBlock_number( ref_block_number );
            if ( !R451_is_a_ReturnSmt().isEmpty() ) R451_is_a_ReturnSmt().setBlock_number( ref_block_number );
            if ( !R451_is_a_ContinueSmt().isEmpty() ) R451_is_a_ContinueSmt().setBlock_number( ref_block_number );
            if ( !R485_finalizes_Finalization().isEmpty() ) R485_finalizes_Finalization().setBlock_number( ref_block_number );
            if ( !R451_is_a_ExpressionAsStatement().isEmpty() ) R451_is_a_ExpressionAsStatement().setBlock_number( ref_block_number );
            if ( !R451_is_a_UnrelateSmt().isEmpty() ) R451_is_a_UnrelateSmt().setBlock_number( ref_block_number );
            if ( !R451_is_a_ForSmt().isEmpty() ) R451_is_a_ForSmt().setBlock_number( ref_block_number );
            if ( !R451_is_a_BreakSmt().isEmpty() ) R451_is_a_BreakSmt().setBlock_number( ref_block_number );
            if ( !R477_executes_after_Statement().isEmpty() ) R477_executes_after_Statement().setBlock_number( ref_block_number );
            if ( !R451_is_a_WhileSmt().isEmpty() ) R451_is_a_WhileSmt().setBlock_number( ref_block_number );
            if ( !R451_is_a_DeleteSmt().isEmpty() ) R451_is_a_DeleteSmt().setBlock_number( ref_block_number );
        }
    }
    @Override
    public String getBlock_number() throws XtumlException {
        checkLiving();
        return ref_block_number;
    }
    private String m_statement_number;
    @Override
    public String getStatement_number() throws XtumlException {
        checkLiving();
        return m_statement_number;
    }
    @Override
    public void setStatement_number(String m_statement_number) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(m_statement_number, this.m_statement_number)) {
            final String oldValue = this.m_statement_number;
            this.m_statement_number = m_statement_number;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "m_statement_number", oldValue, this.m_statement_number));
            if ( !R485_finalizes_Finalization().isEmpty() ) R485_finalizes_Finalization().setStatement_number( m_statement_number );
            if ( !R451_is_a_ReturnSmt().isEmpty() ) R451_is_a_ReturnSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_NullSmt().isEmpty() ) R451_is_a_NullSmt().setStatement_number( m_statement_number );
            if ( !R775_may_contain_Expression().isEmpty() ) R775_may_contain_Expression().setStatement_number( m_statement_number );
            if ( !R457_declares_Variable().isEmpty() ) R457_declares_Variable().setStatement_number( m_statement_number );
            if ( !R451_is_a_ForSmt().isEmpty() ) R451_is_a_ForSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_BreakSmt().isEmpty() ) R451_is_a_BreakSmt().setStatement_number( m_statement_number );
            if ( !R477_executes_after_Statement().isEmpty() ) R477_executes_after_Statement().setNext_statement_number( m_statement_number );
            if ( !R451_is_a_RelateSmt().isEmpty() ) R451_is_a_RelateSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_WhileSmt().isEmpty() ) R451_is_a_WhileSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_ExpressionAsStatement().isEmpty() ) R451_is_a_ExpressionAsStatement().setStatement_number( m_statement_number );
            if ( !R451_is_a_Halt().isEmpty() ) R451_is_a_Halt().setStatement_number( m_statement_number );
            if ( !R451_is_a_Generate().isEmpty() ) R451_is_a_Generate().setStatement_number( m_statement_number );
            if ( !R451_is_a_UnrelateSmt().isEmpty() ) R451_is_a_UnrelateSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_ContinueSmt().isEmpty() ) R451_is_a_ContinueSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_DeleteSmt().isEmpty() ) R451_is_a_DeleteSmt().setStatement_number( m_statement_number );
            if ( !R451_is_a_IfSmt().isEmpty() ) R451_is_a_IfSmt().setStatement_number( m_statement_number );
        }
    }
    private String ref_next_statement_number;
    @Override
    public void setNext_statement_number(String ref_next_statement_number) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(ref_next_statement_number, this.ref_next_statement_number)) {
            final String oldValue = this.ref_next_statement_number;
            this.ref_next_statement_number = ref_next_statement_number;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "ref_next_statement_number", oldValue, this.ref_next_statement_number));
        }
    }
    @Override
    public String getNext_statement_number() throws XtumlException {
        checkLiving();
        return ref_next_statement_number;
    }
    private String m_oal;
    @Override
    public String getOal() throws XtumlException {
        checkLiving();
        return m_oal;
    }
    @Override
    public void setOal(String m_oal) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(m_oal, this.m_oal)) {
            final String oldValue = this.m_oal;
            this.m_oal = m_oal;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "m_oal", oldValue, this.m_oal));
        }
    }
    private String m_prefix;
    @Override
    public String getPrefix() throws XtumlException {
        checkLiving();
        return m_prefix;
    }
    @Override
    public void setPrefix(String m_prefix) throws XtumlException {
        checkLiving();
        if (StringUtil.inequality(m_prefix, this.m_prefix)) {
            final String oldValue = this.m_prefix;
            this.m_prefix = m_prefix;
            getRunContext().addChange(new AttributeChangedDelta(this, KEY_LETTERS, "m_prefix", oldValue, this.m_prefix));
        }
    }


    // instance identifiers
    @Override
    public IInstanceIdentifier getId1() {
        try {
            return new InstanceIdentifier(getParent_name(), getParent_package(), getBody_name(), getBlock_number(), getStatement_number());
        }
        catch ( XtumlException e ) {
            getRunContext().getLog().error(e);
            System.exit(1);
            return null;
        }
    }

    // operations
    @Override
    public void render() throws XtumlException {
        BreakSmt breaksmt = self().R451_is_a_BreakSmt();
        if ( !breaksmt.isEmpty() ) {
            breaksmt.render();
        }
        else {
            ContinueSmt continuesmt = self().R451_is_a_ContinueSmt();
            if ( !continuesmt.isEmpty() ) {
                continuesmt.render();
            }
            else {
                DeleteSmt deletesmt = self().R451_is_a_DeleteSmt();
                if ( !deletesmt.isEmpty() ) {
                    deletesmt.render();
                }
                else {
                    ExpressionAsStatement expressionasstatement = self().R451_is_a_ExpressionAsStatement();
                    if ( !expressionasstatement.isEmpty() ) {
                        expressionasstatement.render();
                    }
                    else {
                        ForSmt forsmt = self().R451_is_a_ForSmt();
                        if ( !forsmt.isEmpty() ) {
                            forsmt.render();
                        }
                        else {
                            Generate generate = self().R451_is_a_Generate();
                            if ( !generate.isEmpty() ) {
                                generate.render();
                            }
                            else {
                                Halt halt = self().R451_is_a_Halt();
                                if ( !halt.isEmpty() ) {
                                    halt.render();
                                }
                                else {
                                    IfSmt ifsmt = self().R451_is_a_IfSmt();
                                    if ( !ifsmt.isEmpty() ) {
                                        ifsmt.render();
                                    }
                                    else {
                                        NullSmt nullsmt = self().R451_is_a_NullSmt();
                                        if ( !nullsmt.isEmpty() ) {
                                            nullsmt.render();
                                        }
                                        else {
                                            RelateSmt relatesmt = self().R451_is_a_RelateSmt();
                                            if ( !relatesmt.isEmpty() ) {
                                                relatesmt.render();
                                            }
                                            else {
                                                ReturnSmt returnsmt = self().R451_is_a_ReturnSmt();
                                                if ( !returnsmt.isEmpty() ) {
                                                    returnsmt.render();
                                                }
                                                else {
                                                    UnrelateSmt unrelatesmt = self().R451_is_a_UnrelateSmt();
                                                    if ( !unrelatesmt.isEmpty() ) {
                                                        unrelatesmt.render();
                                                    }
                                                    else {
                                                        WhileSmt whilesmt = self().R451_is_a_WhileSmt();
                                                        if ( !whilesmt.isEmpty() ) {
                                                            whilesmt.render();
                                                        }
                                                        else {
                                                            throw new XtumlException("No subtype selected");
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }



    // static operations


    // events


    // selections
    private CodeBlock R450_is_contained_by_CodeBlock_inst;
    @Override
    public void setR450_is_contained_by_CodeBlock( CodeBlock inst ) {
        R450_is_contained_by_CodeBlock_inst = inst;
    }
    @Override
    public CodeBlock R450_is_contained_by_CodeBlock() throws XtumlException {
        return R450_is_contained_by_CodeBlock_inst;
    }
    private BreakSmt R451_is_a_BreakSmt_inst;
    @Override
    public void setR451_is_a_BreakSmt( BreakSmt inst ) {
        R451_is_a_BreakSmt_inst = inst;
    }
    @Override
    public BreakSmt R451_is_a_BreakSmt() throws XtumlException {
        return R451_is_a_BreakSmt_inst;
    }
    private ContinueSmt R451_is_a_ContinueSmt_inst;
    @Override
    public void setR451_is_a_ContinueSmt( ContinueSmt inst ) {
        R451_is_a_ContinueSmt_inst = inst;
    }
    @Override
    public ContinueSmt R451_is_a_ContinueSmt() throws XtumlException {
        return R451_is_a_ContinueSmt_inst;
    }
    private DeleteSmt R451_is_a_DeleteSmt_inst;
    @Override
    public void setR451_is_a_DeleteSmt( DeleteSmt inst ) {
        R451_is_a_DeleteSmt_inst = inst;
    }
    @Override
    public DeleteSmt R451_is_a_DeleteSmt() throws XtumlException {
        return R451_is_a_DeleteSmt_inst;
    }
    private ExpressionAsStatement R451_is_a_ExpressionAsStatement_inst;
    @Override
    public void setR451_is_a_ExpressionAsStatement( ExpressionAsStatement inst ) {
        R451_is_a_ExpressionAsStatement_inst = inst;
    }
    @Override
    public ExpressionAsStatement R451_is_a_ExpressionAsStatement() throws XtumlException {
        return R451_is_a_ExpressionAsStatement_inst;
    }
    private ForSmt R451_is_a_ForSmt_inst;
    @Override
    public void setR451_is_a_ForSmt( ForSmt inst ) {
        R451_is_a_ForSmt_inst = inst;
    }
    @Override
    public ForSmt R451_is_a_ForSmt() throws XtumlException {
        return R451_is_a_ForSmt_inst;
    }
    private Generate R451_is_a_Generate_inst;
    @Override
    public void setR451_is_a_Generate( Generate inst ) {
        R451_is_a_Generate_inst = inst;
    }
    @Override
    public Generate R451_is_a_Generate() throws XtumlException {
        return R451_is_a_Generate_inst;
    }
    private Halt R451_is_a_Halt_inst;
    @Override
    public void setR451_is_a_Halt( Halt inst ) {
        R451_is_a_Halt_inst = inst;
    }
    @Override
    public Halt R451_is_a_Halt() throws XtumlException {
        return R451_is_a_Halt_inst;
    }
    private IfSmt R451_is_a_IfSmt_inst;
    @Override
    public void setR451_is_a_IfSmt( IfSmt inst ) {
        R451_is_a_IfSmt_inst = inst;
    }
    @Override
    public IfSmt R451_is_a_IfSmt() throws XtumlException {
        return R451_is_a_IfSmt_inst;
    }
    private NullSmt R451_is_a_NullSmt_inst;
    @Override
    public void setR451_is_a_NullSmt( NullSmt inst ) {
        R451_is_a_NullSmt_inst = inst;
    }
    @Override
    public NullSmt R451_is_a_NullSmt() throws XtumlException {
        return R451_is_a_NullSmt_inst;
    }
    private RelateSmt R451_is_a_RelateSmt_inst;
    @Override
    public void setR451_is_a_RelateSmt( RelateSmt inst ) {
        R451_is_a_RelateSmt_inst = inst;
    }
    @Override
    public RelateSmt R451_is_a_RelateSmt() throws XtumlException {
        return R451_is_a_RelateSmt_inst;
    }
    private ReturnSmt R451_is_a_ReturnSmt_inst;
    @Override
    public void setR451_is_a_ReturnSmt( ReturnSmt inst ) {
        R451_is_a_ReturnSmt_inst = inst;
    }
    @Override
    public ReturnSmt R451_is_a_ReturnSmt() throws XtumlException {
        return R451_is_a_ReturnSmt_inst;
    }
    private UnrelateSmt R451_is_a_UnrelateSmt_inst;
    @Override
    public void setR451_is_a_UnrelateSmt( UnrelateSmt inst ) {
        R451_is_a_UnrelateSmt_inst = inst;
    }
    @Override
    public UnrelateSmt R451_is_a_UnrelateSmt() throws XtumlException {
        return R451_is_a_UnrelateSmt_inst;
    }
    private WhileSmt R451_is_a_WhileSmt_inst;
    @Override
    public void setR451_is_a_WhileSmt( WhileSmt inst ) {
        R451_is_a_WhileSmt_inst = inst;
    }
    @Override
    public WhileSmt R451_is_a_WhileSmt() throws XtumlException {
        return R451_is_a_WhileSmt_inst;
    }
    private VariableSet R457_declares_Variable_set;
    @Override
    public void addR457_declares_Variable( Variable inst ) {
        R457_declares_Variable_set.add(inst);
    }
    @Override
    public void removeR457_declares_Variable( Variable inst ) {
        R457_declares_Variable_set.remove(inst);
    }
    @Override
    public VariableSet R457_declares_Variable() throws XtumlException {
        return R457_declares_Variable_set;
    }
    private Statement R477_executes_after_Statement_inst;
    @Override
    public void setR477_executes_after_Statement( Statement inst ) {
        R477_executes_after_Statement_inst = inst;
    }
    @Override
    public Statement R477_executes_after_Statement() throws XtumlException {
        return R477_executes_after_Statement_inst;
    }
    private Statement R477_executes_before_Statement_inst;
    @Override
    public void setR477_executes_before_Statement( Statement inst ) {
        R477_executes_before_Statement_inst = inst;
    }
    @Override
    public Statement R477_executes_before_Statement() throws XtumlException {
        return R477_executes_before_Statement_inst;
    }
    private FinalizationSet R485_finalizes_Finalization_set;
    @Override
    public void addR485_finalizes_Finalization( Finalization inst ) {
        R485_finalizes_Finalization_set.add(inst);
    }
    @Override
    public void removeR485_finalizes_Finalization( Finalization inst ) {
        R485_finalizes_Finalization_set.remove(inst);
    }
    @Override
    public FinalizationSet R485_finalizes_Finalization() throws XtumlException {
        return R485_finalizes_Finalization_set;
    }
    private ExpressionSet R775_may_contain_Expression_set;
    @Override
    public void addR775_may_contain_Expression( Expression inst ) {
        R775_may_contain_Expression_set.add(inst);
    }
    @Override
    public void removeR775_may_contain_Expression( Expression inst ) {
        R775_may_contain_Expression_set.remove(inst);
    }
    @Override
    public ExpressionSet R775_may_contain_Expression() throws XtumlException {
        return R775_may_contain_Expression_set;
    }


    @Override
    public IRunContext getRunContext() {
        return context().getRunContext();
    }

    @Override
    public Sql context() {
        return context;
    }

    @Override
    public String getKeyLetters() {
        return KEY_LETTERS;
    }

    @Override
    public Statement self() {
        return this;
    }

    @Override
    public Statement oneWhere(IWhere condition) throws XtumlException {
        if (null == condition) throw new XtumlException("Null condition passed to selection.");
        if (condition.evaluate(this)) return this;
        else return EMPTY_STATEMENT;
    }

}

class EmptyStatement extends ModelInstance implements Statement {

    // attributes
    public String getParent_name() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public void setParent_name( String ref_parent_name ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public void setParent_package( String ref_parent_package ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public String getParent_package() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public void setBody_name( String ref_body_name ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public String getBody_name() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public void setBlock_number( String ref_block_number ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public String getBlock_number() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public String getStatement_number() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public void setStatement_number( String m_statement_number ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public void setNext_statement_number( String ref_next_statement_number ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public String getNext_statement_number() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public String getOal() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public void setOal( String m_oal ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }
    public String getPrefix() throws XtumlException {
        throw new EmptyInstanceException( "Cannot get attribute of empty instance." );
    }
    public void setPrefix( String m_prefix ) throws XtumlException {
        throw new EmptyInstanceException( "Cannot set attribute of empty instance." );
    }


    // operations
    public void render() throws XtumlException {
        throw new EmptyInstanceException( "Cannot invoke operation on empty instance." );
    }


    // selections
    @Override
    public CodeBlock R450_is_contained_by_CodeBlock() {
        return CodeBlockImpl.EMPTY_CODEBLOCK;
    }
    @Override
    public BreakSmt R451_is_a_BreakSmt() {
        return BreakSmtImpl.EMPTY_BREAKSMT;
    }
    @Override
    public ContinueSmt R451_is_a_ContinueSmt() {
        return ContinueSmtImpl.EMPTY_CONTINUESMT;
    }
    @Override
    public DeleteSmt R451_is_a_DeleteSmt() {
        return DeleteSmtImpl.EMPTY_DELETESMT;
    }
    @Override
    public ExpressionAsStatement R451_is_a_ExpressionAsStatement() {
        return ExpressionAsStatementImpl.EMPTY_EXPRESSIONASSTATEMENT;
    }
    @Override
    public ForSmt R451_is_a_ForSmt() {
        return ForSmtImpl.EMPTY_FORSMT;
    }
    @Override
    public Generate R451_is_a_Generate() {
        return GenerateImpl.EMPTY_GENERATE;
    }
    @Override
    public Halt R451_is_a_Halt() {
        return HaltImpl.EMPTY_HALT;
    }
    @Override
    public IfSmt R451_is_a_IfSmt() {
        return IfSmtImpl.EMPTY_IFSMT;
    }
    @Override
    public NullSmt R451_is_a_NullSmt() {
        return NullSmtImpl.EMPTY_NULLSMT;
    }
    @Override
    public RelateSmt R451_is_a_RelateSmt() {
        return RelateSmtImpl.EMPTY_RELATESMT;
    }
    @Override
    public ReturnSmt R451_is_a_ReturnSmt() {
        return ReturnSmtImpl.EMPTY_RETURNSMT;
    }
    @Override
    public UnrelateSmt R451_is_a_UnrelateSmt() {
        return UnrelateSmtImpl.EMPTY_UNRELATESMT;
    }
    @Override
    public WhileSmt R451_is_a_WhileSmt() {
        return WhileSmtImpl.EMPTY_WHILESMT;
    }
    @Override
    public VariableSet R457_declares_Variable() {
        return (new VariableSetImpl());
    }
    @Override
    public Statement R477_executes_after_Statement() {
        return StatementImpl.EMPTY_STATEMENT;
    }
    @Override
    public Statement R477_executes_before_Statement() {
        return StatementImpl.EMPTY_STATEMENT;
    }
    @Override
    public FinalizationSet R485_finalizes_Finalization() {
        return (new FinalizationSetImpl());
    }
    @Override
    public ExpressionSet R775_may_contain_Expression() {
        return (new ExpressionSetImpl());
    }


    @Override
    public String getKeyLetters() {
        return StatementImpl.KEY_LETTERS;
    }

    @Override
    public Statement self() {
        return this;
    }

    @Override
    public boolean isEmpty() {
        return true;
    }

    @Override
    public Statement oneWhere(IWhere condition) throws XtumlException {
        if (null == condition) throw new XtumlException("Null condition passed to selection.");
        return StatementImpl.EMPTY_STATEMENT;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy