Adobe AEM ソフトウェアは、Apache Sling Resource を取り、次のように別のクラスに適応させることができるいくつかのクラスを提供します。
Page page = resource.adaptTo(Page.class);
作成および制御するクラスでこの構文を使用するには、単純にAdaptableインターフェースを実装するだけです。
ただし、リソースを新しいカスタム クラスに適応させたい場合は、AdapterFactory インターフェイスを実装して OSGI に登録する必要があるようです。
これは、アドビの Web サイトで説明されている方法です。
任意のオブジェクトをマップできるAdapterFactoryによって。オブジェクトは引き続き Adaptable インターフェースを実装し、SlingAdaptable を拡張する必要があります (これにより、adaptTo 呼び出しが中央のアダプター マネージャーに渡されます)。 これにより、 Resource などの既存のクラスの adaptTo メカニズムへのフックが可能になります。
SlingScriptAdapterFactory コードについて説明しましたが、最終的にはここで点と点を結び付けていません。基本的に私はこれをしたい:
MyClass myClass = Resource.adaptTo(MyClass.class);
AdapterFactory を実装するクラスを作成し、Sling が型で見つけるだけだと期待してパッケージと共に展開するだけですか、それとも他にもあるのでしょうか?