名前付きプロパティー

名前付きプロパティーという種類のユーザー・プロパティーも、グラフィック・オブジェクトに設定できます。名前付きプロパティーは、クラス IlvNamedProperty のインスタンスです。このクラスは抽象クラスで、必要に応じてサブクラス化する必要があります。名前付きプロパティーとユーザー・プロパティーの主な相違点は、このタイプのプロパティーには名前が付いており、グラフィック・オブジェクトを保存すると、.ivl ファイルにあるグラフィック・オブジェクトと一緒に保存できるという点です。名前付きプロパティーは、マネージャー、または「レイヤー」で説明されているレイヤー・オブジェクトにも保存できます。
名前付きプロパティーをグラフィック・オブジェクトに保存するには、次を使用します。
void setNamedProperty(IlvNamedProperty)  
名前付きプロパティーを取得するには、次を使用します。
void getNamedProperty(String name)  
次の例は、名前付きプロパティーを示しています。
import ilog.views.*;
import ilog.views.io.*;

public class MyNamedProperty extends IlvNamedProperty 
{
  String value;
                  
  public MyNamedProperty(IlvInputStream stream) throws IlvReadFileException
  {
    super(stream);
    this.value = stream.readString("value");
  }
                   
  public MyNamedProperty(String name, String value)
  {
    super(name);
    this.value = value;
  }
          
  public MyNamedProperty(MyNamedProperty source)
  {
    super(source);
    this.value = source.value;
  }
               
  public IlvNamedProperty copy()
  {
    return new MyNamedProperty(this);
  }
                 
  public boolean isPersistent()
  {
    return true;
  }
               
  public void write(IlvOutputStream stream) throws IOException
  {
    super.write(stream);
    stream.write("value", value);
  }
             
 }
名前付きプロパティーは、タイプ String のメンバー変数値を定義し、プロパティーの値を保存します。
次のメソッドを作成して、.ivl ファイルにプロパティーを保存できるようにします。
  • 名前付きプロパティーの isPersistent メソッドは、true を返します。
  • write メソッドは、.ivl ファイルにオブジェクトを保存する際に使用します。
    このメソッドをオーバーライドすると、メンバー変数 value にストリングを保存できます。プロパティーを正しく保存するには、super.write を呼び出す必要があります。
  • このクラスは、IlvInputStream パラメーターでパブリック・コンストラクターを定義します。
    このコンストラクターを使用して、.ivl ファイルからプロパティーを再度読み込みます。
    メモ
    パッケージの名前を含めたクラスの完全な名前が、.ivl ファイルに保存されます。したがって、クラスの名前を変更すると、プロパティーは読み込めません。また、クラスはパブリック・クラスで、.ivl ファイルに保存できる必要があります。そうでない場合は、.ivl ファイル・リーダーはクラスをインスタンス生成できません。