Class: NotifierPlugin::BaseHandlerType
- Defined in:
- lib/tecsgen/plugin/NotifierPlugin.rb
Overview
—— ハンドラタイプの定義 ——-
Direct Known Subclasses
BaseTaskHandlerType, DataqueueHandlerType, IncrementVariableHandlerType, NullHandlerType, SetEventflagHandlerType, SetVariableHandlerType, SetVariableToErrorCodeHandlerType, SignalSemaphoreHandlerType, UserHandlerType
Instance Attribute Summary collapse
-
#required_attributes ⇒ Object
readonly
Returns the value of attribute required_attributes.
Instance Method Summary collapse
-
#gen_cfg_handler_parameters(handler, join, attrMap, cell, adpt_gen) ⇒ Object
- adpt_gen
-
AdapterGenerator : アダプタ関数を生成するオブジェクト.
-
#gen_cfg_handler_type(handler) ⇒ Object
NotifierPlugin#BaseHandlerType#gen_cfg_handler_type タイムイベントの通知の種類を表すコンフィギュレータの記述を生成し、Stringまたはnilを返す handler:: Handler : ハンドラ.
-
#generate_attr_map(handler, cell) ⇒ Object
- handler
- Handler : ハンドラ cell
-
Cell : セル.
-
#initialize ⇒ BaseHandlerType
constructor
A new instance of BaseHandlerType.
-
#might_fail ⇒ Object
NotifierPlugin#BaseHandlerType#might_fail 通知の際、エラーが発生し、その結果エラー通知を呼ぶ必要が生じる かどうかを返す。.
-
#validate_join(handler, cell, join) ⇒ Object
NotifierPlugin#BaseHandlerType#validate_join 指定したセルの結合先が、このハンドラタイプに該当するかを検証 handler:: Handler : ハンドラ cell:: Cell : セル join:: Join : 結合 (declarationがPortであるもの).
Constructor Details
#initialize ⇒ BaseHandlerType
Returns a new instance of BaseHandlerType.
465 466 467 468 469 470 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 465 def initialize super # HandlerAttribute[] @required_attributes = [] end |
Instance Attribute Details
#required_attributes ⇒ Object (readonly)
Returns the value of attribute required_attributes.
472 473 474 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 472 def required_attributes @required_attributes end |
Instance Method Details
#gen_cfg_handler_parameters(handler, join, attrMap, cell, adpt_gen) ⇒ Object
- adpt_gen
-
AdapterGenerator : アダプタ関数を生成するオブジェクト
535 536 537 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 535 def gen_cfg_handler_parameters(handler, join, attrMap, cell, adpt_gen) return nil end |
#gen_cfg_handler_type(handler) ⇒ Object
NotifierPlugin#BaseHandlerType#gen_cfg_handler_type
タイムイベントの通知の種類を表すコンフィギュレータの記述を生成し、Stringまたはnilを返す
- handler
-
Handler : ハンドラ
523 524 525 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 523 def gen_cfg_handler_type(handler) raise "called abstract method gen_cfg_handler_type" end |
#generate_attr_map(handler, cell) ⇒ Object
- handler
-
Handler : ハンドラ
- cell
-
Cell : セル
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 491 def generate_attr_map(handler, cell) map = {} join_list = cell.get_join_list ATTRS.each {|known_attr| attr_name = known_attr.name_for_handler(handler) join = join_list.get_item(attr_name.to_sym) # このセルタイプにおいて必須の属性か? is_required = @required_attributes.include?(known_attr) # 属性の指定が不足している? or 過剰? # 注: ハンドラタイプの判別には、セルで値が指定されているか # が考慮される。セルタイプで初期値が指定されていても、 # それはハンドラタイプの決定に影響しない。 return nil if join.nil? != !is_required # 必要のない属性であり、指定もされていないので飛ばす next if join.nil? # TODO: attrの結合であることを検証 map[known_attr] = join } return map end |
#might_fail ⇒ Object
NotifierPlugin#BaseHandlerType#might_fail
通知の際、エラーが発生し、その結果エラー通知を呼ぶ必要が生じる かどうかを返す。
542 543 544 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 542 def might_fail return false end |
#validate_join(handler, cell, join) ⇒ Object
NotifierPlugin#BaseHandlerType#validate_join
指定したセルの結合先が、このハンドラタイプに該当するかを検証
- handler
-
Handler : ハンドラ
- cell
-
Cell : セル
- join
-
Join : 結合 (declarationがPortであるもの)
479 480 481 |
# File 'lib/tecsgen/plugin/NotifierPlugin.rb', line 479 def validate_join(handler, cell, join) return !generate_attr_map(handler, cell).nil? end |