フォルダーのコピー
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
Documents and Media APIを使用すると、リポジトリ内のフォルダーをコピーできます。 ただし、異なるリポジトリ間でフォルダーをコピーすることはできません。 また、フォルダーをコピーすると、その内容もコピーされることに注意してください。
フォルダーをコピーするには、 DLAppService
method copyFolder
使用します。
copyFolder(long repositoryId, long sourceFolderId, long parentFolderId, String name,
String description, ServiceContext serviceContext)
メソッドとそのパラメーターの詳細については、その Javadoc参照してください。
このメソッドを使用してフォルダーをコピーするには、次の手順に従います。
-
DLAppService
への参照を取得します。@Reference private DLAppService _dlAppService;
詳細については、入門チュートリアルの「サービスリファレンス 取得
」のセクションを参照してください。
2 copyFolder
メソッドの引数を設定するために必要なデータを取得します。 これを行う方法は、ユースケースによって異なります。 この例のコピー操作は、デフォルトのサイトリポジトリで行われ、フォルダーの既存の名前と説明を保持します。 したがって、フォルダのグループID(デフォルトのサイトリポジトリを指定するため)、名前、および説明が必要です。 また、この例の宛先フォルダーはリポジトリのルートフォルダーであるため、親フォルダーIDは不要であることに注意してください。Liferay DXPは、リポジトリのルートフォルダーを指定するための定数を提供します。
次のコードでは、 ParamUtil
はリクエスト(javax.portlet.ActionRequest
)からフォルダーのIDを取得し、サービス参照の getFolder
メソッドは対応するフォルダーオブジェクトを取得します。 フォルダの getGroupId()
、 のgetName()
、及び のgetDescription()
の方法、次いで、それぞれのフォルダのグループID、名前、説明を得ます。
long folderId = ParamUtil.getLong(actionRequest, "folderId");
Folder folder = _dlAppService.getFolder(folderId);
long groupId = folder.getGroupId();
String folderName = folder.getName();
String folderDescription = folder.getDescription();
ServiceContext serviceContext = ServiceContextFactory.getInstance(
DLFolder.class.getName(), actionRequest);
リポジトリIDとフォルダIDの取得の詳細については、リポジトリとフォルダの指定に関する 入門チュートリアルの セクションを参照してください。 ServiceContext
詳細については、チュートリアル ServiceContextについて参照してください。
3 前の手順のデータを使用して、サービス参照の copyFolder
メソッドを呼び出します。 この例では、 DLFolderConstants
定数 DEFAULT_PARENT_FOLDER_ID
を使用して、リポジトリのルートフォルダーを宛先フォルダーとして指定します。
_dlAppService.copyFolder(
groupId, folderId, DLFolderConstants.DEFAULT_PARENT_FOLDER_ID,
folderName, folderDescription, serviceContext);
</ol>
これらの値は、コピー操作に合わせて変更できることに注意してください。 たとえば、コピーがデフォルトのサイトリポジトリ以外のリポジトリで行われる場合、グループIDの代わりにそのリポジトリのIDを指定します。 別の宛先フォルダーを指定したり、新しいフォルダーの名前や説明を変更したりすることもできます。