RaCoCo result: MetamodelX::Red::OnDB

# MetamodelX::Red::OnDB 68.4%

    use nqp;
    use Red::Attr::Column;

    =head2 MetamodelX::Red::OnDB

    unit role MetamodelX::Red::OnDB;

    has $!is-on-db-attr;

    method is-on-db-attr(|) {
        $!is-on-db-attr;
    }

    sub is-on-db-attr-build(|){
        False
    }

    method set-helper-attrs(Mu \type) {
        my %attr is Set = type.^attributes>>.name;
        unless %attr<%!___IS_ON_DB___> {
                $!is-on-db-attr = Attribute.new: :name<%!___IS_ON_DB___>, :package(type), :type(Bool), :!has_accessor;
                $!is-on-db-attr.set_build: &is-on-db-attr-build;
                type.^add_attribute: $!is-on-db-attr;
        }
    }

    #| Checks if the instance of model has a record in the database or not.
    #| For example, `Person.^create(...).^is-on-db` returns True, because `^create` was called,
    #| but `Person.new(...).^is-on-db` will return False, because the created object does not have
    #| a representation in the database without calls to `^create` or `^save` done.
    multi method is-on-db(\instance) {
        $!is-on-db-attr.get_value(instance)
    }

    multi method not-on-db(\instance) {
        $!is-on-db-attr.get_value(instance) = False
    }

    #| Sets that that object is on DB
    multi method saved-on-db(\instance) {
        $!is-on-db-attr.get_value(instance) = True
    }