WebObjects 5.2.3

com.webobjects.appserver
Class WOComponent

java.lang.Object
  extended bycom.webobjects.appserver.WOElement
      extended bycom.webobjects.appserver.WOComponent
All Implemented Interfaces:
Cloneable, NSKeyValueCoding, NSKeyValueCoding.ErrorHandling, NSKeyValueCodingAdditions, NSValidation, Serializable, WOActionResults
Direct Known Subclasses:
BASSidePageWrapper, D2WCollapsibleComponentContent, D2WComponent, D2WDefaultCustomComponent, D2WEmbeddedComponent, D2WEmptyWrapper, D2WGenerationWrapper, D2WSwitchComponent, DefaultHeader, JSComponent, JSValidatedField, NEUHeader, WOAnyField, WOBatchNavigationBar, WOCheckboxMatrix, WOCollapsibleComponentContent, WOCompletionBar, WODictionaryRepetition, WOEventPage, WOEventRow, WOExceptionPage, WOIFrame, WOJavaClientApplet, WOJavaClientComponent, WOJavaClientJNLP, WOKeyValueConditional, WOLongResponsePage, WOMetaRefresh, WOOperation, WOOperationWSDLTemplate, WOPageRestorationError, WORadioButtonMatrix, WORedirect, WOSessionCreationError, WOSessionRestorationError, WOSimpleArrayDisplay, WOSMILElement, WOSortOrder, WOSortOrderManyKey, WOStatsPage, WOTable, WOTableString, WOTabPanel, WOThresholdColoredNumber, WOToManyRelationship, WOToOneRelationship, WXAccessControl, WXBar, WXOutlineControl, WXOutlineEntry, WXOutlineRepetition, WXSortOrder

public class WOComponent
extends WOElement
implements NSKeyValueCoding, NSKeyValueCoding.ErrorHandling, NSKeyValueCodingAdditions, NSValidation, WOActionResults, Cloneable, Serializable

WOComponentオブジェクトはランタイムにおいてWebページ(またはページの一部)を動的にレンダリングします。それらはページに対するカスタム・ナビゲーションやその他のロジックを提供し、構成オブジェクト(スタティックおよびダイナミックHTMLエレメントとサブコンポーネント)を統合するフレームワークを提供し、ダイナミック・エレメントの属性バインディングを使用可能にします。

WOComponentクラスには、WOApplicationクラスのメソッドと同じ名前のメソッドが多数あります。しかしながら、WOComponentメソッドの守備範囲はアプリケーション全体ではなくコンポーネントに限られています。たとえば、コンポーネントキャッシュは、setCachingEnabledを使って各コンポーネント上で制御することができますが、WOApplicationにもこれに相当するものがあります。この種類のキャッシュがコンポーネントに対して使用可能なとき、アプリケーションは、コンポーネントが初めてrequestされたときにコンポーネント・ディレクトリのコンテンツを解析して、コンポーネントの定義を作成し、このオブジェクトをメモリに格納して、今後のrequestで利用します。

WOComponentオブジェクトはさらに、awake()、sleep()と3つのrequest処理メソッド(takeValuesFromRequest、invokeAction、appendToResponse)にも応答します。 これらのメソッドはコンパイル済みサブクラス内でオーバーライドできるため、カスタムの動作をrequest-responseループに統合できます。

SubComponents

WOComponentオブジェクトは、Webページ全体はもちろん、Webページの一部である動的フラグメントを表示できます。たとえば subcomponentsまたは reusable componentsは、ページまたは他のサブコンポーネントを表示する親コンポーネント内にネストされます。コンポーネントがtakeValuesFromRequestなどのrequest-処理メッセージを受け取ったときに、各コンポーネントは、その親とサブコンポーネントの経過を追跡し、メッセージをそのサブコンポーネントにフォワードします。

WOComponent クラスも、child-parentコールバックのメカニズムを提供して子コンポーネントがその親と通信することを許可します。親の宣言ファイルでは、親のアクションメソッドへ子の任意の属性をバインドします。次に、子のアクション・メソッドの最終ステップとして、引数を任意の属性にしてperformParentAction を起動し、受け取ったオブジェクトをresponseページとして返します。

ステートレス・コンポーネント(Stateless Components)

さらに効率を上げるため、ステートレス・コンポーネントを作成できます。これはセッション間で共有できるコンポーネントです。ステートレス・コンポーネントは必要とされるたびにレプリケートされることはなく、コンポーネントが使用されるたびに、1つの共有インスタンスが参照されます。


ステートレス・コンポーネントはステートを保持することはできません。これらはインスタンス変数を保持できますが、変数の内容は一時的である必要があります。コンポーネントの共有インスタンスが他のセッションで再使用されるときに悪影響が起こらないことを確認するために、reset メソッドを実装して、コンポーネントのインスタンス変数をリセットします。resetの実装では、各インスタンス変数はnullに設定します。ステートレス・コンポーネントのインスタンス変数はあるフェーズ(takeValuesFromRequest、 invokeAction 、 appendToResponse )の間、有効であることに注意してください。これにより、ステートレス・コンポーネントのインスタンス変数を使ってWORepetitionのアイテムと類似したものを保持させることができます 。

ステートレス・コンポーネントは原則的にメモリの使用量を節約するように動作しますが、アプリケーション内でいくつのステートレス・コンポーネントを使うかによって、アプリケーションの大幅なスピード・アップも可能にします。コンポーネントをステートレスにするためには、コンポーネントのisStatelessメソッドをオーバーライドしてtrueを返すようにします。

ステートレス・コンポーネントが別個のスレッドで同時に必要な場合は、必要に応じてコンポーネントの追加インスタンスが作成され(その後破棄されます)コンフリクトを防止します。このようにして、コンポーネントが使用できるスレッド数が、任意の指定時に割り当てられるステートレス・コンポーネントの最大インスタンス数を決定します。

参照:
setCachingEnabled(boolean), awake(), sleep(), takeValuesFromRequest(WORequest, WOContext), invokeAction(WORequest, WOContext), appendToResponse(WOResponse aResponse, WOContext aContext), performParentAction(String anActionName), reset(), isStateless(), Serialized Form

Nested Class Summary
static class WOComponent.Event
 WOComponent.Eventクラスはコンポーネント・レベルで多様なオペレーションの時間を計るために使われます。
 
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCoding
NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.Null, NSKeyValueCoding.UnknownKeyException, NSKeyValueCoding.Utility, NSKeyValueCoding.ValueAccessor
 
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCodingAdditions
NSKeyValueCodingAdditions.DefaultImplementation, NSKeyValueCodingAdditions.Utility
 
Nested classes inherited from class com.webobjects.foundation.NSValidation
NSValidation.DefaultImplementation, NSValidation.Utility, NSValidation.ValidationException
 
Field Summary
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding
NullValue
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions
KeyPathSeparator
 
Constructor Summary
WOComponent()
 推奨されません。 代わりに、WOComponent(WOContext aContext) を使用してください。このコンストラクタの使用は、アプリケーションのスピードを著しく低下します。
WOComponent(WOContext aContext)
 WebObjects Builderはコンポーネント・ディレクトリに存在するファイルをアーカイブして、このコンストラクタがこのアーカイブからコンポーネント変数を初期化します。
 
Method Summary
 void appendToResponse(WOResponse aResponse, WOContext aContext)
 コンポーネントに対して、そのインタフェースの生成とその応答コンテンツへの出力を行います。
 WOApplication application()
 現在のアプリケーションのWOApplicationオブジェクトを返します。
 void awake()
 request-responseループのサイクル中、WOComponent生成の初期段階において起動されます。
 String baseURL()
 サーバーのドキュメント・ルートに関連するコンポーネントURLを返します。
 NSArray bindingKeys()
 各WOComponentの関連に対するバインディング・キー(Stringオブジェクト)を含むNSArrayを返します。
static boolean canAccessFieldsDirectly()
 WOComponentのこのスタティック・メソッドの実装はtrueを返します。
 boolean canGetValueForBinding(String aBindingName)
 バインディングが存在し、valueForBindingが値を戻せることを検証します。
 boolean canSetValueForBinding(String aBindingName)
 バインディングが存在し、setValueForBinding が成功することを検証します。
 Object clone()
 Cloneableへの適合。
 WOContext context()
 現在のトランザクション(request-responseループ)のWOContextオブジェクトを返します。
static void debugString(String string)
 推奨されません。 debugStringはすでにサポートされていません。
 String descriptionForResponse(WOResponse aResponse, WOContext aContext)
 コンポーネントがトップレベル・コンポーネントであるときに、それに関する情報を記録します。
 void ensureAwakeInContext(WOContext aContext)
 指定されたコンテキストでレシーバがawakeであることを保証します。
 String frameworkName()
 コンポーネントがフレームワークに内包されているときに、このメソッドはそのフレームワークの名前を返します。
 WOResponse generateResponse()
 WOActionResultsへの適合。
 Object handleQueryWithUnboundKey(String key)
 NSKeyValueCoding.ErrorHandlingへの適合。
 void handleTakeValueForUnboundKey(Object value, String key)
 NSKeyValueCoding.ErrorHandlingへの適合。
 boolean hasBinding(String aBindingName)
 コンポーネントがaBindingNameという名前のバインディングを保持しているかどうかを返します。
 boolean hasSession()
 コンポーネントがすでにセッションにあるかどうかを返します。
 WOActionResults invokeAction(WORequest aRequest, WOContext aContext)
 コンポーネントに対して、requestで指定されたあらゆるアクションの実行を指示します。
 boolean isCachingEnabled()
 コンポーネントキャッシュが、このコンポーネントに対して使用可能かどうかを返します。
 boolean isEventLoggingEnabled()
 コンポーネントがイベント・ログを必要としているかどうかを判断するために呼び出されます。
 boolean isStateless()
 デフォルトで、このメソッドはfalseを返し、レシーバのインスタンスに対してステートが維持されることを示します。
static void logString(String string)
 推奨されません。 logStringはすでにサポートされていません。
 String name()
 コンポーネントの名前が戻され、これにはDOCUMENTROOT/WebObjects の下のすべてのディレクトリのパスの".wo" 拡張子を除いたものが含まれます。
 WOComponent pageWithName(String aName)
 aNameによって識別される新しいページ・インスタンス(a WOComponentオブジェクト)を返します。
 WOComponent parent()
           
 String path()
          Deprecated. use pathURL instead.
 URL pathURL()
 コンポーネントのファイルシステム・パスを返します。
 WOActionResults performParentAction(String anActionName)
 サブコンポーネントに対し、子コンポーネントにバインドされた親コンポーネントのアクション・メソッドの起動を許可します。
 void pullValuesFromParent()
 親コンポーネントからバインディング値をプルします。
 void pushValuesToParent()
 親コンポーネントにバインディング値をプッシュします。
 void reset()
 ステートレス・コンポーネントに一時リファレンスのリセットを許可します。
 WOSession session()
 現在のWOSessionオブジェクトを返します。
 void set_componentUnroll(Object anObject)
 Private.
 void set_unroll(Object anObject)
          This method is private.
 void setCachingEnabled(boolean aFlag)
このコンポーネントのキャッシュを使用可能または使用不可にします。
 void setValueForBinding(Object aValue, String aBindingName)
 親コンポーネントで指定されたバインディングの値を設定します。
 void sleep()
 request-処理サイクルの最後に起動されます。
 boolean synchronizesVariablesWithBindings()
 親コンポーネントでの値のpush-pullが使用可能であるかどうかを示します。
 void takeValueForKey(Object value, String key)
 NSKeyValueCodingへの適合。
 void takeValueForKeyPath(Object value, String keyPath)
 NSKeyValueCodingAdditionsへの適合。
 void takeValuesFromRequest(WORequest aRequest, WOContext aContext)
 コンポーネントに対し、その変数をrequestからの値と同期化することを指示します。
 WOElement template()
 このコンポーネントを構成するスタティック、ダイナミック・エレメント、 コンポーネントのグラフを返します。
static WOElement templateWithHTMLString(String anHTMLString, String aDeclarationString, NSArray aLanguageArray)
  コンポーネントのテンプレートをプログラムで作成します。
 WOElement templateWithName(String aName)
  このメソッドは使用しないでください。
 String toString()
           
 void unableToSetNullForKey(String key)
 NSKeyValueCoding.ErrorHandlingへの適合。
 Object validateTakeValueForKeyPath(Object value, String keyPath)
 指定された値を検証(さらに強制)し、現在の値と異なるときはそれを割り当てます。
 Object validateValueForKey(Object value, String key)
 NSValidationへの適合。
 void validationFailedWithException(Throwable t, Object value, String keyPath)
 Enterprise Objectまたはフォーマッタが、割当て中の検証で失敗したときに呼び出されます。
 Object valueForBinding(String aBindingName)
 指定のバインディングの値を親コンポーネントから取得します。
 Object valueForKey(String key)
 NSKeyValueCodingへの適合。
 Object valueForKeyPath(String keyPath)
 NSKeyValueCodingAdditionsへの適合。
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WOComponent

public WOComponent()
推奨されません。 代わりに、WOComponent(WOContext aContext) を使用してください。このコンストラクタの使用は、アプリケーションのスピードを著しく低下します。

参照:
WOComponent(WOContext aContext)

WOComponent

public WOComponent(WOContext aContext)
WebObjects Builderはコンポーネント・ディレクトリに存在するファイルをアーカイブして、このコンストラクタがこのアーカイブからコンポーネント変数を初期化します。このコンストラクタは、コンポーネントの名前を決定できないときや、その他の理由でオブジェクトを初期化できないときに例外をスローします。 カスタムの初期化を実行するためには、コンパイル済みのサブクラスでWOComponent(WOContext aContext) をオーバーライドします。常に、最初にsuperのデフォルト・コンストラクタを起動します。

パラメータ:
aContext - トランザクションのコンテキスト
Method Detail

appendToResponse

public void appendToResponse(WOResponse aResponse,
                             WOContext aContext)
コンポーネントに対して、そのインタフェースの生成と応答コンテンツへの出力を強制します。コンポーネントrequest処理の最終フェーズ中に、またはダイレクト・アクション・メソッドによって、responseに関連付けられたコンポーネント・オブジェクトがこのメッセージを受け取ります。append-to-responseフェーズでは、アプリケーション・オブジェクト(特にresponseページ・インスタンス自体)が、ページのHTMLコンテンツを生成します。このメソッドのWOComponentのデフォルト実装は、コンポーネント・テンプレートのルートWOElement オブジェクト上で、appendToResponse メソッドを起動し、これは順番にappendToResponse を起動します。WOComponentのサブクラスは、デフォルトの動作をカスタム・ロジックで置換えまたは補完するためにこのメソッドをオーバーライドできます。

オーバーライド:
クラス WOElementappendToResponse
パラメータ:
aResponse - request-responseループのサイクルを完了するために、アプリケーションがWebサーバーに返すHTTP response
aContext - トランザクションのコンテキスト
参照:
invokeAction(WORequest aRequest, WOContext aContext), takeValuesFromRequest(WORequest aRequest, WOContext aContext)

application

public WOApplication application()
現在のアプリケーションのWOApplicationオブジェクトを返します。
戻り値:
WOApplicationインスタンス
参照:
context(), session(), WOApplication

awake

public void awake()
request-responseループのサイクル中、WOComponent生成の初期段階において起動されます。これはWOComponentに対して、インスタンス変数の初期化やsetup オペレーション実行の機会を与えます。デフォルトの実装は何も行いません。

参照:
ensureAwakeInContext(WOContext aContext), sleep()

baseURL

public String baseURL()
サーバーのドキュメント・ルートに関連するコンポーネントURLを返します。たとえば、"/WebObjects/MyApp.woa/Resources/Main.wo"です。

戻り値:
サーバーに関連するURL
参照:
name(), path()

bindingKeys

public NSArray bindingKeys()
各WOComponentの関連に対するバインディング・キー(Stringオブジェクト)を含むNSArrayを返します。バインディング・キーは、WebObjects Builderの「component inspector」ウィンドウ内のテーブルの左列で定義されます。

戻り値:
コンポーネントのキーのNSArray

canAccessFieldsDirectly

public static boolean canAccessFieldsDirectly()
WOComponentのこのスタティック・メソッドの実装はtrueを返します。これは、適切なメソッドが存在しない場合に、key-value コーディングがこのオブジェクトのフィールドへアクセスを許可されていることを示します。

戻り値:
キーがフィールドに直接アクセスできる場合はtrue、そうでない場合はfalse。

canGetValueForBinding

public boolean canGetValueForBinding(String aBindingName)
バインディングが存在し、valueForBindingが値を戻せることを検証します。デフォルトの実装はhasBinding(String aBindingName) を呼び出すだけです。

パラメータ:
aBindingName - 値が親コンポーネントでプルまたはプッシュされるときに使われるバインディング名
戻り値:
キーがバインディングの値を取得する場合はtrue 、そうでない場合はfalse 。
参照:
canSetValueForBinding(String aBindingName), hasBinding(String aBindingName), valueForBinding(String aBindingName)

canSetValueForBinding

public boolean canSetValueForBinding(String aBindingName)
バインディングが存在し、setValueForBinding が成功することを検証します。
パラメータ:
aBindingName - 値が親コンポーネントでプルまたはプッシュされるときに使われるバインディング名
戻り値:
キーがバインディングに値を設定できる場合はtrue 、そうでない場合はfalse。
参照:
canGetValueForBinding(String aBindingName), hasBinding(String aBindingName), setValueForBinding(Object aValue, String aBindingName)

clone

public Object clone()
             throws CloneNotSupportedException
Cloneableへの適合。

戻り値:
レシーバのコピーである新しいオブジェクト
スロー:
CloneNotSupportedException - オブジェクトが既知のフォーマットでない場合

context

public WOContext context()
現在のトランザクション(request-responseループ)のWOContextオブジェクトを返します。

戻り値:
トランザクションのコンテキスト
参照:
application(), session(), WOContext

debugString

public static void debugString(String string)
推奨されません。 debugString はすでにサポートされていません。
代わりにNSLogを使用してください。

パラメータ:
string -
参照:
NSLog

descriptionForResponse

public String descriptionForResponse(WOResponse aResponse,
                                     WOContext aContext)
コンポーネントがトップレベル・コンポーネントであるときに、それに関する情報を記録します。デフォルト実装ではコンポーネントの名前を記録します。コンポーネントについてより多くの情報を記録するために、このメソッドをオーバーライドできます。たとえば、コンポーネント名に加えて、一部のインスタンス変数の値も記録する場合などがあります。

このメソッドはトップレベルの応答コンポーネント上でのみ起動されます。これはページ全体を表示するものです。トップレベル・コンポーネントの内部にネストされているコンポーネントは、このメソッドを受け取りません。

アプリケーションがCLFFログ・ファイルを保持している場合、このメソッドが返す文字列はそのログ・ファイルに記録されます。 したがって、返す文字列がCLFF-analysis ツールで分析できることを確認する必要があります。

パラメータ:
aResponse - アプリ-ケーションがWebサーバーに返してrequest-responseループのサイクルを完了するHTTPresponse
aContext - トランザクションのコンテキスト
戻り値:
応答コンポーネントについての情報
参照:
WOStatisticsStore

ensureAwakeInContext

public void ensureAwakeInContext(WOContext aContext)
指定されたコンテキストで、レシーバがawakeであることを確認します。変数にセットされたコンポーネントを使用する前に、このメソッドを起動します。コンポーネントがpageWithNameのみで作成された場合やWebObjectsページのキャッシュから回復された場合、あるいはページが単にアクションの結果として戻される場合には、ensureAwakeInContext()を起動する必要はありません。つまり、その他の方法ではawakeにならないコンポーネント上でメソッドを起動しようとしているときに限り、このメソッドを起動する必要があります。受け取るコンポーネントがすでにawakeの場合には、このメソッドは何の効果もありません。

パラメータ:
aContext - トランザクションのコンテキスト
参照:
awake(), pageWithName(String aName)

frameworkName

public String frameworkName()
コンポーネントがフレームワークに内包されているときに、このメソッドはそのフレームワークの名前を返します。たとえば、コンポーネントがフレームワークNeXT_ROOT/System/Library/Frameworks/WOExtensions.frameworkにある場合、このメソッドはString "WOExtensions"を返します。コンポーネントがフレームワークに格納されていない場合、このメソッドはnullを返します。

戻り値:
コンポーネントを含むフレームワークの名前
参照:
WOResourceManager

generateResponse

public WOResponse generateResponse()
WOActionResultsへの適合。新しく作成したWOResponseオブジェクトを返します。WOComponentのこのメソッドのデフォルト実装は、appendToResponseをそれ自体の上で起動して、受取りコンポーネントを新しいWOResponseオブジェクトに変換します。

指定元:
インタフェース WOActionResultsgenerateResponse
戻り値:
アプリケーションが、request-response ループのサイクルを完了させるためにWebサーバーに(送る)HTTPresponse
参照:
appendToResponse(WOResponse, WOContext), WOResponse.generateResponse()

handleQueryWithUnboundKey

public Object handleQueryWithUnboundKey(String key)
NSKeyValueCoding.ErrorHandlingへの適合。

指定元:
インタフェース NSKeyValueCoding.ErrorHandlinghandleQueryWithUnboundKey
パラメータ:
key - レシーバの要求の属性の1つ
戻り値:
対応するvalueForKey起動により値が戻される場合に、値を返すことができます。
参照:
NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.UnknownKeyException#TargetObjectUserInfoKey, NSKeyValueCoding.UnknownKeyException#UnknownUserInfoKey, NSKeyValueCoding.valueForKey(String key)

handleTakeValueForUnboundKey

public void handleTakeValueForUnboundKey(Object value,
                                         String key)
Conformance to NSKeyValueCoding.ErrorHandling.

指定元:
handleTakeValueForUnboundKey in interface NSKeyValueCoding.ErrorHandling
パラメータ:
value - receiver's property identified by key is set to this
key - one of the attributes of the receiver's request
参照:
NSKeyValueCoding.UnknownKeyException#TargetObjectUserInfoKey, NSKeyValueCoding.UnknownKeyException#UnknownUserInfoKey, NSKeyValueCoding.takeValueForKey(Object value, String key)

hasBinding

public boolean hasBinding(String aBindingName)
Returns whether the component has a binding named aBindingName. This method traverses the chain of associations to the top-level parent, if necessary.

パラメータ:
aBindingName - name of the binding
戻り値:
true if the binding exists on the component else false
参照:
canGetValueForBinding(String aBindingName), canSetValueForBinding(String aBindingName)

hasSession

public boolean hasSession()
Returns whether the component is already in a session. For example, in direct actions, sessions are lazily created and you can avoid creating one unnecessarily by calling hasSession before session.

戻り値:
true if the component is in a session, false otherwise
参照:
session()

invokeAction

public WOActionResults invokeAction(WORequest aRequest,
                                    WOContext aContext)
Tells the component to execute any action specified in the request. It is systematically called during the middle phase of the component request handling. All WOComponent objects associated with a request page invoke this method. In this middle phase, the invokeAction method is propagated through the WOElement objects of the page. The dynamic element on which the user has acted (by, for example, clicking a button) responds by triggering the method in the request component that is bound to the action. WOComponent's default implementation of this method invokes invokeAction on the root WOElement object of the component template.

オーバーライド:
invokeAction in class WOElement
パラメータ:
aRequest - the request
aContext - context of the transaction
戻り値:
a WOActionResults containing the result of the request
参照:
appendToResponse(WOResponse aResponse, WOContext aContext), takeValuesFromRequest(WORequest aRequest, WOContext aContext)

isCachingEnabled

public boolean isCachingEnabled()
Returns whether component definition caching is enabled for this component. False is the default. Note that most large applications will set the global caching to true at deployment time, so this flag often has a different value between development and deployment.

戻り値:
true if caching is enabled for the component, false otherwise
参照:
setCachingEnabled(boolean flag), WOApplication.isCachingEnabled()

isEventLoggingEnabled

public boolean isEventLoggingEnabled()
Called to determine if a component wants event logging. This is not desirable, for example, for components which are associated with events as they would interfere with the actual event logging. The default implementation of this method returns true.

戻り値:
true if the event logging is enabled for the component, false otherwise
参照:
WOEvent

isStateless

public boolean isStateless()
By default, this method returns false, indicating that state will be maintained for instances of the receiver. Overriding this method to return true will make the component stateless. A single instance of each stateless component is shared between multiple sessions, reducing the application's memory footprint.

By default, stateless components don't synchronize. So, if you override this method to return true and you want the component to synchronize, you must also override synchronizesVariablesWithBindings and return true.

戻り値:
true if this method is overidden, false otherwise
参照:
reset(), synchronizesVariablesWithBindings()

logString

public static void logString(String string)
Deprecated. logString is no longer supported.

Use NSLog instead.

パラメータ:
string -
参照:
NSLog

name

public String name()
Returns the name of the component, which includes a path of all directories under DOCUMENTROOT/WebObjects and is minus the ".wo" extension. For example, "Main" is a typical component name.

戻り値:
name of the current component
参照:
baseURL(), path()

pageWithName

public WOComponent pageWithName(String aName)
Returns a new page instance (a WOComponent object) identified by aName. If aName is null, the "Main" component is returned. If the method cannot create a valid page instance, it throws an exception.

パラメータ:
aName - the name of the component to be returned
戻り値:
the component if it exists
参照:
WOSession.restorePageForContextID(String aContextID), WOSession.savePage(WOComponent aPage), WOApplication.pageWithName(String aName, WOContext aContext)

parent

public WOComponent parent()
戻り値:
the component from which the component is generated (its parent component)

path

public String path()
Deprecated. use pathURL instead.

戻り値:
path of the component
参照:
pathURL()

pathURL

public URL pathURL()
Returns the path URL to the component. The URL includes the .wo extension. For example file://Users/auser/MyApp.woa/Resources/Main.wo or jar:file://Users/auser/MyApp.jar!/Resources/Main.wo or

戻り値:
path URL of the component
Since:
5.2.2
参照:
baseURL(), name()

performParentAction

public WOActionResults performParentAction(String anActionName)
Allows a subcomponent to invoke an action method of its parent component bound to the child component. Parent and child components are "synchronized" when this method returns. The variables that are bound by a declaration of the child component in the parent component's declaration file have the same value.

An example best illustrates this mechanism. Let's say there is a Palette subcomponent, and this WOComponent is nested in a parent component with a displaySelection action method. When the user selects an item in the palette (perhaps a color), you want to invoke displaySelection to show the result of the new selection (perhaps a car in the new color). The declaration in the parent's .wod file would look like this:

 PALETTE: Palette {
   selection = number;
   callBack = "displaySelection";
 };
 

The "callBack" item is an arbitrary attribute of the child component bound in this declaration to the parent component's displaySelection method. The performParentAction method is used to activate this binding. Assuming the child component has an action method called click, the implementation would look like this:

 public WOActionResults click() {  // this is the child's action
   selection = "xxxx"; // some value
   // now invoke the parent's action
   return performParentAction(callBack);
 }
 

パラメータ:
anActionName - name of the current action method
戻り値:
an action method same as its parent component

pullValuesFromParent

public void pullValuesFromParent()
Pulls binding values from the parent component. If this component synchronizes its bindings with its parent component (that is, if synchronizesVariablesWithBindings() returns true), this method causes binding values to be pulled from the parent component.


pushValuesToParent

public void pushValuesToParent()
Pushes binding values to the parent component. If this component synchronizes its bindings with its parent component (that is, if synchronizesVariablesWithBindings() returns true), this method causes binding values to be pushed up to the parent component.


reset

public void reset()
Allows a stateless component to reset temporary references. This method -- which is only invoked if the component is stateless -- allows a component instance to reset or delete temporary references to objects that are specific to a given context. To ensure that when the shared instance of a component is reused by another session there are no side effects, implement this method so that it releases and sets to null each of the component's instance variables.

参照:
isStateless()

session

public WOSession session()
Returns the current WOSession object. This method creates a new session if there isn't already one.

戻り値:
the current session
参照:
application(), context(), hasSession(), WOSession

setCachingEnabled

public void setCachingEnabled(boolean aFlag)
Enables or disables the caching of this component's definition. WOComponent definitions contain templates and other common information related to components and are used to generate instances of these components. When this attribute is set to true, the application parses the HTML template and the declaration (".wod") file of a component once and then stores the resulting component definition for future requests.

By default, individual component definition caching is controlled by WOApplication's global component definition caching policy. The global policy is set according to the start-up parameter WOCachingEnabled, or WOApplication's setCachingEnabled(boolean aFlag). With it, you can turn component definition caching off globally. You can then control caching of individual component definitions using WOComponent's version of this method. Note that most large applications will set the global caching to false at deployment time. Selective caching is an especially valuable technique for large applications where a few highly specialized components should not be cached but re-parsed everytime they are requested.

パラメータ:
aFlag - flag deciding the caching of the receiving component
参照:
isCachingEnabled(), WOApplication.setCachingEnabled(boolean aFlag)

setValueForBinding

public void setValueForBinding(Object aValue,
                               String aBindingName)
Sets the value of the binding specified in the parent component. The binding specified by aBindingName is set to aValue in the parent component. If the binding isn't settable, this method throws an exception.

パラメータ:
aValue - value of the binding
aBindingName - name of the binding to be set
参照:
WOAssociation.isValueSettableInComponent(WOComponent aComponent)

set_componentUnroll

public void set_componentUnroll(Object anObject)
Private. This method is used by the Direct to Web generation layer, and does nothing in WOComponent.

パラメータ:
anObject - name of the current object

set_unroll

public void set_unroll(Object anObject)
This method is private. This method is used by the Direct to Web generation layer, and does nothing in WOComponent.

パラメータ:
anObject - name of the current object

sleep

public void sleep()
Invoked at the conclusion of a request-handling cycle. It gives the component the opportunity for releasing references to objects created and initialized in its awake method. The default implementation does nothing.

参照:
awake()

synchronizesVariablesWithBindings

public boolean synchronizesVariablesWithBindings()
Indicates if the push-pull of values in the parent component is enabled. Returns whether a nested component pulls all values down from its parent and pushes all values to its parent before and after each phase of the request-response loop. This method returns false for stateless components (unless you override isStateless and return true), and true otherwise. Override this method to create a non-synchronizing component.

戻り値:
false if this method creates a non-synchronizing component, true otherwise
参照:
valueForBinding(String aBindingName), setValueForBinding(Object aValue, String aBindingName), pullValuesFromParent(), pushValuesToParent(), isStateless()

takeValueForKey

public void takeValueForKey(Object value,
                            String key)
Conformance to NSKeyValueCoding.

指定元:
takeValueForKey in interface NSKeyValueCoding
パラメータ:
key - identifies the property to be set
value - the value to which the property specified by key should be set
参照:
NSKeyValueCoding.NullValue, NSKeyValueCoding.valueForKey(java.lang.String), NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.ErrorHandling.handleTakeValueForUnboundKey(java.lang.Object, java.lang.String)

takeValueForKeyPath

public void takeValueForKeyPath(Object value,
                                String keyPath)
Conformance to NSKeyValueCodingAdditions.

指定元:
takeValueForKeyPath in interface NSKeyValueCodingAdditions
パラメータ:
keyPath - identifies a derived property of the receiver
value - value to which the derived property identified by keyPath will be set
参照:
NSKeyValueCoding.takeValueForKey(java.lang.Object, java.lang.String), NSKeyValueCodingAdditions.valueForKeyPath(java.lang.String), NSKeyValueCodingAdditions.DefaultImplementation

takeValuesFromRequest

public void takeValuesFromRequest(WORequest aRequest,
                                  WOContext aContext)
Tells the component to synchronize its variables with values from the request. It is systematically called during the first phase of the component request handling. All WOComponent objects associated with a request are called with this method during the first phase of the request-response loop. The default WOComponent behavior is to invoke the method on the root WOElement object of the component's template (returned by template(). In this phase, each dynamic element in the template extracts any entered data or changed state (such as a check in a check box) associated with an attribute and assigns the value to the component variable bound to the attribute. Subclasses of WOComponent can override this method to replace or supplement the default behavior with custom logic.

オーバーライド:
takeValuesFromRequest in class WOElement
パラメータ:
aRequest - the current request with the WOComponent object
aContext - トランザクションのコンテキスト
参照:
appendToResponse(WOResponse aResponse, WOContext aContext), invokeAction(WORequest aRequest, WOContext aContext)

template

public WOElement template()
Returns the graph of static, dynamic elements and components that compose this component. It is a WOElement representing the root object of the graph of static and dynamic HTML elements and subcomponents that is used to graphically render the receiving component. This template is constructed from the ".html" and ".wod" files found in the component directory. Note that this WOElement template is shared amongst all instances of the component. If component definition caching is set to false, the WOElement template will be reconstructed from the ".html" and .wod" files, for every request of this particular component, and the object returned will change with every request. Therefore, the return value of this method may change between development and deployment if you trigger caching and non-caching modes.

戻り値:
the WOElement object corresponding to the receiving component
参照:
WOElement, setCachingEnabled(boolean), WOApplication.setCachingEnabled(boolean aFlag)

templateWithHTMLString

public static WOElement templateWithHTMLString(String anHTMLString,
                                               String aDeclarationString,
                                               NSArray aLanguageArray)
Programmatically creates a component's template. Using anHTMLString as the HTML template contents and aDeclarationString as the declarations file contents, returns (as a WOElement object) the graph of static and dynamic elements built by parsing the HTML and declaration Strings. You can then use the returned WOElement as a component's template. This method is not called by WebObjects

パラメータ:
anHTMLString - HTML string to create the template of the component
aDeclarationString - declaration on the template of the component
aLanguageArray - list of languages in specific order
戻り値:
the template of the component
参照:
templateWithName(String aName)

templateWithName

public WOElement templateWithName(String aName)
Deprecated. Use template instead.

This method should not be used.

パラメータ:
aName - ignored
戻り値:
the root WOElement object of the component definition.
参照:
template()

toString

public String toString()
オーバーライド:
toString in class WOElement
戻り値:
a String including the name of the receiving class plus the name of each subcomponent

unableToSetNullForKey

public void unableToSetNullForKey(String key)
Conformance to NSKeyValueCoding.ErrorHandling.

指定元:
unableToSetNullForKey in interface NSKeyValueCoding.ErrorHandling
パラメータ:
key - identifies the property of an object
参照:
NSKeyValueCoding.takeValueForKey(Object value, String key), NSKeyValueCoding.DefaultImplementation

validateTakeValueForKeyPath

public Object validateTakeValueForKeyPath(Object value,
                                          String keyPath)
                                   throws NSValidation.ValidationException
Validates (and coerces) the given value, assigning it if it is different than the current value. Throws a validation exception if validateValueForKey returns an exception. Returns the coerced (assigned) value.

指定元:
validateTakeValueForKeyPath in interface NSValidation
パラメータ:
value - the given value to be validated
keyPath - the key path associated with this value, identifies the property of an object
戻り値:
the coerced (assigned) value
スロー:
NSValidation.ValidationException - when the key cannot be validated by validateValueForKey
参照:
validateValueForKey(Object value, String key)

validateValueForKey

public Object validateValueForKey(Object value,
                                  String key)
                           throws NSValidation.ValidationException
Conformance to NSValidation.

指定元:
validateValueForKey in interface NSValidation
パラメータ:
value - the given value to be validated
key - the key path associated with this value, identifies the property of an object
戻り値:
the validated value if it's legal
スロー:
NSValidation.ValidationException - when the key cannot be validated by validateValueForKey
参照:
validateValueForKey(java.lang.Object, java.lang.String)

validationFailedWithException

public void validationFailedWithException(Throwable t,
                                          Object value,
                                          String keyPath)
Called when an Enterprise Object or formatter failed validation during an assignment. The default implementation ignores the error. Subclassers can override to record the error and possibly return a different page for the current action

パラメータ:
t - the exception thrown during validation
value - the given value to be validated
keyPath - the key path associated with this value, identifies the property of an object

valueForBinding

public Object valueForBinding(String aBindingName)
Gets the value for the specified binding from the parent component. If the current component doesn't define this key, this method returns null.

パラメータ:
aBindingName - name of a binding
戻り値:
value for the input binding name
参照:
canGetValueForBinding(String aBindingName), setValueForBinding(Object aValue, String aBindingName), synchronizesVariablesWithBindings()

valueForKey

public Object valueForKey(String key)
Conformance to NSKeyValueCoding.

指定元:
valueForKey in interface NSKeyValueCoding
パラメータ:
key - identifies the property of an object
戻り値:
the receiver's value for the property identified by key
参照:
NSKeyValueCoding.NullValue, NSKeyValueCoding.takeValueForKey(java.lang.Object, java.lang.String), NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.ErrorHandling.handleQueryWithUnboundKey(java.lang.String)

valueForKeyPath

public Object valueForKeyPath(String keyPath)
Conformance to NSKeyValueCodingAdditions.

指定元:
valueForKeyPath in interface NSKeyValueCodingAdditions
パラメータ:
keyPath - identifies the derived property of an object
戻り値:
receiver's value for the derived property identified by keyPath
参照:
NSKeyValueCoding.valueForKey(java.lang.String), NSKeyValueCodingAdditions.takeValueForKeyPath(java.lang.Object, java.lang.String), NSKeyValueCodingAdditions.DefaultImplementation

Last updated Thu Oct 21 15:04:16 PDT 2004.

Copyright © 2004 Apple Computer, Inc.