Sha256: 80046d8a764c20ab57ab75871d4adb1b2beb685a493995a41d8044c8606f15c3

Contents?: true

Size: 1.86 KB

Versions: 171

Compression:

Stored size: 1.86 KB

Contents

module Expressir
  module Model
    module Declarations
      # Specified in ISO 10303-11:2004
      # - section 9.2 Entity declaration
      class Entity < Declaration
        include Identifier

        model_attr_accessor :abstract, 'Boolean'
        model_attr_accessor :supertype_expression, 'SupertypeExpression'
        model_attr_accessor :subtype_of, 'Array<Reference>'
        model_attr_accessor :attributes, 'Array<Attribute>'
        model_attr_accessor :unique_rules, 'Array<UniqueRule>'
        model_attr_accessor :where_rules, 'Array<WhereRule>'
        model_attr_accessor :informal_propositions, 'Array<RemarkItem>'

        # @param [Hash] options
        # @option (see Identifier#initialize_identifier)
        # @option options [Boolean] :abstract
        # @option options [SupertypeExpression] :supertype_expression
        # @option options [Array<Reference>] :subtype_of
        # @option options [Array<Attribute>] :attributes
        # @option options [Array<UniqueRule>] :unique_rules
        # @option options [Array<WhereRule>] :where_rules
        # @option options [Array<RemarkItem>] :informal_propositions
        def initialize(options = {})
          initialize_identifier(options)

          @abstract = options[:abstract]
          @supertype_expression = options[:supertype_expression]
          @subtype_of = options[:subtype_of] || []
          @attributes = options[:attributes] || []
          @unique_rules = options[:unique_rules] || []
          @where_rules = options[:where_rules] || []
          @informal_propositions = options[:informal_propositions] || []

          super
        end

        # @return [Array<Declaration>]
        def children
          [
            *attributes,
            *unique_rules,
            *where_rules,
            *informal_propositions,
            *remark_items
          ]
        end
      end
    end
  end
end

Version data entries

171 entries across 171 versions & 1 rubygems

Version Path
expressir-2.1.0 lib/expressir/model/declarations/entity.rb
expressir-2.0.0 lib/expressir/model/declarations/entity.rb
expressir-1.4.2 lib/expressir/model/declarations/entity.rb
expressir-1.4.2-x86_64-linux-musl lib/expressir/model/declarations/entity.rb
expressir-1.4.2-x86_64-linux-gnu lib/expressir/model/declarations/entity.rb
expressir-1.4.2-x86_64-darwin lib/expressir/model/declarations/entity.rb
expressir-1.4.2-x64-mingw32 lib/expressir/model/declarations/entity.rb
expressir-1.4.2-x64-mingw-ucrt lib/expressir/model/declarations/entity.rb
expressir-1.4.2-arm64-darwin lib/expressir/model/declarations/entity.rb
expressir-1.4.2-aarch64-linux-musl lib/expressir/model/declarations/entity.rb
expressir-1.4.2-aarch64-linux-gnu lib/expressir/model/declarations/entity.rb
expressir-1.4.1 lib/expressir/model/declarations/entity.rb
expressir-1.4.1-x86_64-linux-musl lib/expressir/model/declarations/entity.rb
expressir-1.4.1-x86_64-linux-gnu lib/expressir/model/declarations/entity.rb
expressir-1.4.1-x86_64-darwin lib/expressir/model/declarations/entity.rb
expressir-1.4.1-x64-mingw32 lib/expressir/model/declarations/entity.rb
expressir-1.4.1-x64-mingw-ucrt lib/expressir/model/declarations/entity.rb
expressir-1.4.1-arm64-darwin lib/expressir/model/declarations/entity.rb
expressir-1.4.1-aarch64-linux-musl lib/expressir/model/declarations/entity.rb
expressir-1.4.1-aarch64-linux-gnu lib/expressir/model/declarations/entity.rb