ストラタジーナム メニュー

2006年6月28日水曜日

UML中級講座 第58回 WriteStructuralFeatureAction

昨日、中野長者の話をしましたが、筆者のオフィスのあるこの街には、様々な長者伝説が伝わっています。
おそらく、他の伝承と同じく、長い年月の間に複数の話が重奏して現在の伝説になったのだと思いますが、筆者なりに原風景をたどってみました。

現在、新宿区、中野区、渋谷区の3つの区の境界が住宅地の細い路地を縫うように交錯するこの辺りは、かつては神田川の氾濫原であり、普段は神田川が細流として流れる荒れ地であったようです。
そして、人跡まばらなこの辺り一帯は、総称として漠然と「なかの」と呼ばれていました。
そこに、今から600年以上前、鈴木九郎さんと言う人が紀州から移り住んできました。
鈴木氏は馬を商う事をなりわいとしており、今でも良馬を産み育てることは難しい事業ですが、おそらく優れた技術の持ち主だったのでしょう、後年、大変な大金持ちになったそうです。
しかしながら、現在この地には鈴木氏の子孫は全く伝わっておりません。
彼には、一人娘がいたようですが、(おそらく皮膚病だと思われる)難病を患い、若くして亡くなってしまったようです。
最愛の一人娘を失った悲嘆は、いくら巨万の富があっても癒すことができないのは、今も昔も変わりません。
彼は、全財産を仏法に委ね、屋敷を寺院としました。
最近の改修の際、成願寺の仏像の胎内から出てきた骨片を調べたところ、老人男性と若い娘の骨だと解りました。
おそらく、鈴木氏父娘だと言われています。

5−5−2 WriteStructuralFeatureAction

入力ピンで指定されたオブジェクトの構造化特性の値を変更するための抽象メタクラスで、具体的なアクションは、AddStructuralFeatureValueActionとRemoveStructuralValueActionの2つのサブクラスが規定しています。
歴史的には、UML1.5のWriteAttributeActionを一般化したもので、当然のことながらクラスの属性の更新を行なうこともできます。
なお、属性は複数の値を着けることができ、内部的には順序付のリスト構造の形で保持されます。

5−5−2−1 AddStructuralFeatureValueAction

構造化特性の値を付け加える為のアクションで、値の置き換えを行うことも可能です。
構造化特性は、複数の値が順序づけられて並べてある構造をしており、挿入点(insertAt)を指定して新しい値を挿入します。
属性isReplaceAllがtrueの場合、新しい値の挿入前に古い値がすべて取り除かれ、値の入れ替えが可能です。
指定された構造化特性が関連端であった場合、意味的にはリンクを形成することと同じ意味になります。

(注)挿入点(insertAt)は、整数値を取り、1は先頭を意味し、*は末尾に付け加えることを意味します。

図 11−07