java.net
クラス GoConn

java.lang.Object
  上位を拡張 java.net.GoConn

public class GoConn
extends java.lang.Object

後述する小さな変更を除けば、このクラスのインスタンスは「RFC 404 Godo Compa」で定義されたGoConn通信プロトコルを実現します。

このクラスはスレッドセーフではありません。 複数のHumanクラスが同時に日程情報や場所情報の書き換えを行った場合に、各Humanクラスが保持する情報に不整合が発生する場合があります。

GoConnが開始される前に、Kanjiクラスとの通信が不通になった場合、一定期間をおいてこのクラスのインスタンスは破棄されます。 この時、当該クラスのインスタンスがスコープ内にあった場合でも、ガベージコレクションの対象になることに注意してください。

Kanji以外のHumanクラスがGoConnインスタンスにアクセスすることはできません。 Humanクラスは、Kanjiクラスのmailやtelメソッドを呼び出すことによって、position(開催場所)、datetime(日時)を取得することができます。 HumanクラスがKanjiクラスのインスタンスを持っていない場合は、別のHumanクラスに対してmailやtelを行い、対象HumanクラスからKanjiクラスに問い合わせをしてください。 この時、レスポンスが期日までに返ることは保証されていません

このクラスは「RFC 404 Godo Compa」におけるMember(参加者)に関するフィールドを保持しません。 また、ManクラスのisIkemenフィールドや、WomanクラスのisCawaiiフィールドを参照する機能も有していません。 これらは実運用において GoConn.start() を呼び出す前の段階で参照できるケースが皆無であることから、JDK1.5より削除されました。


フィールドの概要
private  java.util.Date datetime
          開催日時
private  Kanji manKanji
          男性幹事
private  int menCount
          男性人数
private  java.lang.String position
          開催場所
private  Kanji womanKanji
          女性幹事
private  int womenCount
          女性人数
 
コンストラクタの概要
GoConn(Kanji manKanji, Kanji womanKanji)
          インスタンスを生成する。
 
メソッドの概要
 void adjust()
          男性人数と女性人数が一致しない場合、気分によってMemberCountNoMatchExceptionがthrowされます。
private  Kanji getManKanji()
          男性幹事を取得する。
 int getMenCount()
          男性人数を取得する。
private  Kanji getWomanKanji()
          女性幹事を取得する。
 int getWomenCount()
          女性人数を取得する。
 Mail mail(int kanjiId)
          幹事とのメール通信オブジェクトを返す。
 void nijikai()
          GoConn通信終了後、再度通信を立ち上げます。
private  void setManKanji(Kanji kanji)
          manKanjiを設定する。
 void setMenCount(int menCount, int kanjiId)
          男性人数を設定する。
private  void setWomanKanji(Kanji kanji)
          womanKanjiを設定すr。
 void setWomenCount(int womenCount, int kanjiId)
          女性人数を設定する。
 void start(boolean forceStart)
          GoConn通信を開催する。
 Tel tel(int kanjiId)
          幹事との電話通信オブジェクトを返す。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

datetime

private java.util.Date datetime
開催日時。
このフィールドに対して複数の書き換えが同時に発生した場合、上書きされる日時はランダムで選択されます。 また、ここに保存されている日時はあくまで目安であり、実際に開催される日時とは異なる(主に遅れる)場合があります。


position

private java.lang.String position
開催場所。
datetimeと同じく、複数の書き換えが同時に発生した場合は、上書きされる場所はランダムで選択されます。 また、このフィールドに格納された最新情報の場所に行っても、実際にはGoConn通信が行われていない場合があります。


manKanji

private Kanji manKanji
男性幹事。


womanKanji

private Kanji womanKanji
女性幹事。


menCount

private int menCount
男性人数。GoConnクラスでは、Memberの管理は行いません。Memberの管理はKanjiクラスで行われるべき(should)です。


womenCount

private int womenCount
女性人数。GoConnクラスでは、Memberの管理は行いません。Memberの管理はKanjiクラスで行われるべき(should)です。

コンストラクタの詳細

GoConn

public GoConn(Kanji manKanji,
              Kanji womanKanji)
インスタンスを生成する。

パラメータ:
manKanji - 男性幹事
womanKanji - 女性幹事
メソッドの詳細

setManKanji

private void setManKanji(Kanji kanji)
                  throws KanjiCanNotChangeException
manKanjiを設定する。manKanjiフィールドは1度設定すると変更できません。 変更を行おうと試みた場合は、KanjiCanNotChangeExceptionがスローされます。 幹事変更が発生した場合は即座にインスタンスを破棄し、新しくGoConnインスタンスを生成してください。

パラメータ:
kanji - 男性幹事
例外:
KanjiCanNotChangeException - 幹事が途中で降りるとかありえん例外

getManKanji

private Kanji getManKanji()
男性幹事を取得する。

戻り値:
男性幹事

setWomanKanji

private void setWomanKanji(Kanji kanji)
                    throws KanjiCanNotChangeException
womanKanjiを設定する。womanKanjiフィールドは1度設定すると変更できません。 変更を行おうと試みた場合は、KanjiCanNotChangeExceptionがスローされます。 幹事変更が発生した場合は即座にインスタンスを破棄し、新しくGoConnインスタンスを生成してください。

パラメータ:
kanji - 女性幹事
例外:
KanjiCanNotChangeException - 幹事が途中で降りるとかありえん例外

getWomanKanji

private Kanji getWomanKanji()
女性幹事を取得する。

戻り値:
女性幹事

getMenCount

public int getMenCount()
男性人数を取得する。この数字と、GoConn.start() が実行された際の実際の人数は異なる場合があります


setMenCount

public void setMenCount(int menCount,
                        int kanjiId)
男性人数を設定する。この数値は男性幹事、もしくは女性幹事によって書き換えられます。

パラメータ:
menCount - 男性人数
kanjiId - 幹事ID

getWomenCount

public int getWomenCount()
女性人数を取得する。この数字と、GoConn.start() が実行された際の実際の人数よりも少ない場合が多いです


setWomenCount

public void setWomenCount(int womenCount,
                          int kanjiId)
女性人数を設定する。この数値は女性幹事によってのみ書き換えられます。 男性幹事がこの数字に修正を加えようとした場合の動作は保証されていません

パラメータ:
womenCount - 女性人数
kanjiId - 幹事ID

adjust

public void adjust()
            throws MemberCountNoMatchException
男性人数と女性人数が一致しない場合、気分によってMemberCountNoMatchExceptionがthrowされます。 人数の乖離が大きいほど、例外が発生する確率が高くなります。 Kanjiクラスでは、例外を受け取った際に、男女どちらかの人数を増やす、もしくは男性メンバーを削る処理を記述してください。

例外:
MemberCountNoMatchException - メンバーの数が違う場合に発生すること(MAY)があります

start

public void start(boolean forceStart)
           throws FewerMemberException,
                  KnajiNotReachedException
GoConn通信を開催する。幹事が未到着の場合は、KnajiNotReachedExceptionがスローされます。 または予定されていた人数が集まらなかった場合は、FewerMemberExceptionがスローされます。

パラメータ:
forceStart - 強制スタート。forceStartをtrueに設定した場合は、メンバーの数や到着チェック処理をスキップします。
例外:
FewerMemberException - 話していたのと人数が違うのだけど例外
KnajiNotReachedException - 幹事が遅刻とかありえん例外

nijikai

public void nijikai()
             throws KibunjaNaiException,
                    ShudenException
GoConn通信終了後、再度通信を立ち上げます。
通信の立ち上げに失敗した場合は、KibunjaNaiException、もしくはShudenExceptionが発生します。 通信に失敗した原因が不明な場合は、HaiinFumeiExceptionが発生します。 nijikaiメソッドを呼び出すかどうかは任意(OPTIONAL)に設定されています。但し、これは「すべき(should)」に格上げすることが検討されています。

例外:
KibunjaNaiException - それほど楽しくなかった場合に発生する
ShudenException - 終電が近い場合に発生する
HaiinFumeiException - 原因不明時の例外

tel

public Tel tel(int kanjiId)
幹事との電話通信オブジェクトを返します。 幹事IDがmanKanji、もしくはwomanKanjiフィールドの保有するidと一致する場合にのみ、telメソッドは相手幹事のTelオブジェクトを返します。 他のIDで呼び出した場合はnullが帰ります。

パラメータ:
kanjiId - 幹事ID
戻り値:
電話通信オブジェクト

mail

public Mail mail(int kanjiId)
幹事とのメール通信オブジェクトを返します。 幹事IDがmanKanji、もしくはwomanKanjiフィールドの保有するidと一致する場合にのみ、mailメソッドは相手幹事のMailオブジェクトを返します。 他のIDで呼び出した場合はnullが帰ります。

パラメータ:
kanjiId - 幹事ID
戻り値:
メール通信オブジェクト


※すいません。ここに書いてある内容は虚偽のものです。