この章では、ロールAPIのユースケースについて説明します。このユースケースで、Oracle Enterprise Repositoryのロールの作成、読込み、更新、削除または問合せを行う方法について解説します。
この章では、次の項目について説明します。
ロール・サブシステムは、Oracle Enterprise Repositoryのロールの作成、読込み、更新、問合せまたは操作に使用する、Webサービス・ベースのメカニズムを提供します。
関連するサブシステム
詳細は、第31章「ユーザーAPI」を参照してください。
追加で必要なインポート
import com.flashline.registry.openapi.entity.Role; import com.flashline.registry.openapi.query.RoleCriteria;
この項では、ロールAPIを使用するユースケースについて説明します。内容は次のとおりです。
説明
新しいロールを作成します。
ロールを読み込みます。
ロールを更新します。
ロールを削除します。
ロールを問い合せます。
サンプル・コード
例28-1 ユースケース: ロールの操作
package com.flashline.sample.roleapi; import java.net.MalformedURLException; import java.net.URL; import java.rmi.RemoteException; import java.util.Calendar; import javax.xml.rpc.ServiceException; import com.flashline.registry.openapi.base.OpenAPIException; import com.flashline.registry.openapi.entity.AuthToken; import com.flashline.registry.openapi.entity.Role; import com.flashline.registry.openapi.query.RoleCriteria; import com.flashline.registry.openapi.service.v300.FlashlineRegistry; import com.flashline.registry.openapi.service.v300.FlashlineRegistryServiceLocator; public class Roles { public static void main(String pArgs[]) throws OpenAPIException, RemoteException, ServiceException { try { /////////////////////////////////////////////////////////// // Connect to Oracle Enterprise Repository /////////////////////////////////////////////////////////// URL lURL = null; lURL = new URL(pArgs[0]); FlashlineRegistry repository = new FlashlineRegistryServiceLocator() .getFlashlineRegistry(lURL); // ////////////////////////////// // Authenticate with OER // ////////////////////////////// AuthToken authToken = repository.authTokenCreate(pArgs[1], pArgs[2]); // ----------------------------------------- // Create a new role String lName = "new_role_type_name"; String lDesc = "new_role_type_desc"; boolean lDeafultForNewUser = true; Role lRole = null; lRole = repository.roleCreate(authToken, lName, lDesc, lDeafultForNewUser); // ----------------------------------------- // Read a Role String lRoleName = lName; Role lRole2 = null; lRole2 = repository.roleRead(authToken, lRoleName); // ----------------------------------------- // Update a Role String lRoleName3 = lName; Role lRole3 = null; lRole3 = repository.roleRead(authToken, lRoleName3); lRole3.setName("user_modified"); lRole3.setStatus(20); lRole3 = repository.roleUpdate(authToken, lRole); // ----------------------------------------- // Delete a Role String lRoleName4 = "user_modified"; // role name must exist in OER Role lRole4 = repository.roleRead(authToken, lRoleName4); if (lRole4==null) { lRole4 = repository.roleRead(authToken, lName); } if (lRole4!=null) { try { repository.roleDelete(authToken, lRole4.getName()); } catch (OpenAPIException e) { e.printStackTrace(); } } // ----------------------------------------- // This method is used to query for roles. Role[] lRoles = null; RoleCriteria lRoleCriteria = null; lRoleCriteria = new RoleCriteria(); lRoleCriteria.setNameCriteria("user"); lRoles = repository.roleQuery(authToken, lRoleCriteria); } catch (OpenAPIException lEx) { System.out.println("ServerCode = " + lEx.getServerErrorCode()); System.out.println("Message = " + lEx.getMessage()); System.out.println("StackTrace:"); lEx.printStackTrace(); } catch (RemoteException lEx) { lEx.printStackTrace(); } catch (ServiceException lEx) { lEx.printStackTrace(); } catch (MalformedURLException lEx) { lEx.printStackTrace(); } } }