ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Enterprise Repository統合ガイド
11g リリース1 (11.1.1.7)
B72433-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

18 カテゴリ分けタイプとカテゴリ分けAPI

この章では、カテゴリ分けタイプとカテゴリ分けAPIのユースケースについて説明します。このユースケースで、カテゴリ分けタイプの作成、カテゴリ分けの操作、およびカテゴリ分けタイプの操作を行う方法について解説します。

この章では、次の項目について説明します。

18.1 概要

カテゴリ分けとカテゴリ分けタイプの違いを理解することは重要です。

カテゴリ分けタイプは、カスタムの分類を定義する手段を提供します。カテゴリ分けはカテゴリ分けタイプのサブセットであり、アセットに割り当てられます。たとえば、テクノロジと呼ばれるカテゴリ分けタイプには、割当て可能なカテゴリ分けとして、Java、.NETおよびCOBOLが含まれていることがあります。さらに、Javaの下のサブカテゴリ分けには、サーブレットとアプレットが含まれています。したがって、Oracle Enterprise Repositoryのアセットは、Javaのカテゴリ分けに割り当てられるか、特にサーブレットのサブカテゴリ分けに割り当てられることがあります。

特定のアセットに割り当てられるカテゴリ分けは、そのアセットのタイプに定義されたカテゴリ分けタイプで決定されます。前述の例として、テクノロジのカテゴリ分けタイプがアセット・タイプXYZに対して定義されている場合、タイプXYZのアセットはJava、.NETまたはCOBOLのカテゴリ分けに割り当てるか、サーブレットまたはアプレットのサブカテゴリ分けに割り当てることができます。この分類の構造によって、アセットをグループ化し、Oracle Enterprise Repository内で様々な方法で表示できます。

カテゴリ分けタイプはプロジェクトに関連付けることもできます(Oracle Enterprise Repositoryがその機能用に構成されている場合)。すべてのプロジェクトに割当て可能なカテゴリ分けタイプは、すべてのプロジェクトに使用できます。アセットと同様に、プロジェクトは、割当て済カテゴリ分けタイプで使用可能なカテゴリ分けのいずれにも関連付けることができます。

カテゴリ分けタイプとカテゴリ分けのルールは、次のとおりです。

次のメソッドによって、カテゴリ分けタイプの作成、更新、表示、問合せおよび削除を行うことができます。

18.2 ユースケース

この項では、カテゴリ分けタイプおよびカテゴリ分けAPIを使用するユースケースについて説明します。含まれる内容は、次のとおりです。

18.2.1 ユースケース: カテゴリ分けタイプの作成

説明

新しく作成されたカテゴリ分けタイプに付けられた要素名には、空白や特殊文字は使用できません。単数および複数の表示名に使用される文字に制限はありません。pExclusiveAssignブールでは、カテゴリ分けタイプ内で割り当てることができるカテゴリ分けを1つにするか、または複数にするかを決定します。pExclusiveAssignブールは、カテゴリ分けタイプをプロジェクトに割り当てるかどうかも決定します。このメソッドでは、既存のカテゴリ分けの重複を避け、作成済のカテゴリ分けタイプを返します。

サンプル・コード

例18-1 ユースケース: カテゴリ分けタイプの作成

package com.flashline.sample.categorizationtypesandapi;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
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.CategorizationType;
import com.flashline.registry.openapi.service.v300.FlashlineRegistry;
import
 com.flashline.registry.openapi.service.v300.FlashlineRegistryServiceLocator;
public class CreateCategorizationType {
  public static void main(String pArgs[]) throws java.rmi.RemoteException,
      OpenAPIException {
    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 the categorization type
      // //////////////////////////////
      String pName = "Name";
      String pSingularDisplay = "SingularDisplay";
      String pPluralDisplay = "PluralDisplay";
      boolean pExclusiveAssign = true;
      boolean pProjectAssign = true;
      CategorizationType lCategorizationType =
 repository.categorizationTypeCreate(authToken, pName,
          pSingularDisplay, pPluralDisplay, pExclusiveAssign, pProjectAssign);
      // ----------------------------------------
      // clean up
      repository.categorizationTypeDelete(authToken, lCategorizationType);
    } 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();
    }
  }
}

18.2.2 ユースケース: カテゴリ分けタイプの操作

説明

次の操作を例に示します。

  • ID別のカテゴリ分けタイプの取得。

  • カテゴリ分けタイプの更新。

  • カテゴリ分けタイプの削除。

  • 注意が必要です。このメソッドでは、カテゴリ分けタイプ全体、およびこれに含まれているすべてのカテゴリ分けが削除されます。

  • カテゴリ分けタイプの問合せ。

  • 名前、タイプ、およびカテゴリ分けをプロジェクトに割り当てるかどうかを含め、様々な条件を使用します。

  • カテゴリ分けタイプの取得。

サンプル・コード

例18-2 ユースケース: カテゴリ分けタイプの操作

package com.flashline.sample.categorizationtypesandapi;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
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.Categorization;
import com.flashline.registry.openapi.entity.CategorizationType;
import com.flashline.registry.openapi.query.CategorizationTypeCriteria;
import com.flashline.registry.openapi.service.v300.FlashlineRegistry;
import
 com.flashline.registry.openapi.service.v300.FlashlineRegistryServiceLocator;
public class CategorizationExamples {
  public static void main(String pArgs[]) throws ServiceException,
 RemoteException,
      OpenAPIException {
    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 Categorization Type
      // //////////////////////////////
      CategorizationType categorizationType = repository
          .categorizationTypeCreate(authToken, "exampleType", "Example Type",
              "Example Types", false, true);
      // //////////////////////////////
      // Find and update a categorization type
      // //////////////////////////////
      CategorizationTypeCriteria categorizationTypeCriteria = new
 CategorizationTypeCriteria();
      boolean projectAssign = true;
      categorizationTypeCriteria.setProjectAssignCriteria(projectAssign + "");
      CategorizationType[] categorizationTypes = repository
          .categorizationTypeQuery(authToken, categorizationTypeCriteria);
      // Set plural display name
      categorizationType.setDisplayPlural("Updated Example Types");
      // Set singular display name
      categorizationType.setDisplaySingular("Updated Example Type");
      // Set Categorization Type name
      categorizationType.setName("updatedExampleType");
      // Set Categorization Type exclusive assign
      categorizationType.setExclusiveAssign(true);
      // Set Categorization Type project Assignable
      categorizationType.setProjectAssignable(false);
      // Update Categorization Type
      categorizationType = repository.categorizationTypeUpdate(
          authToken, categorizationType);
      // Read a Categorization Type
      CategorizationType categorizationTypeRead = repository
          .categorizationTypeRead(authToken, categorizationType.getID());
      // //////////////////////////////
      // Create a Categorization within a Categorization Type
      // //////////////////////////////
      Categorization categorization = repository.categorizationCreate(
          authToken, "Example Categorization", categorizationType);
      // //////////////////////////////
      // Create a Categorization within a Categorization (a.k.a. a
      // sub-categorization or child categorization)
      //
      // method validates that:
      //   - no child categorization with the same name exists within the
      //     parent categorization.
      //   - the categorization type is valid
      //   - the parent categorization is valid.
      // //////////////////////////////
      Categorization childCategorization = repository
          .categorizationChildCreate(authToken, "Example Child Categorization",
              categorizationType, categorization);
      childCategorization.setName("Updated Example Child Categorization");
      childCategorization = repository.categorizationUpdate(authToken,
          childCategorization, categorizationType);
      // //////////////////////////////
      // Observe various properties of a categorization. Note that the
      // properties are not being assigned to local variables in
      // the interest of brevity...
      // //////////////////////////////
      Categorization categorizationRead = repository.categorizationRead(
          authToken, childCategorization.getID());
      // Get Categorization parent id
      //categorizationRead.getParentID();
      // Get Categorization active status
      categorizationRead.getActiveStatus();
      // Get Categorization ID
      categorizationRead.getID();
      // Get Categorization name
      categorizationRead.getName();
      // Get Categorization recursive name
      categorizationRead.getRecursiveName();
      // Get Categorization Categorization Type ID
      categorizationRead.getTypeID();
      // //////////////////////////////
      // Retrieve the full tree of categorizations for a Categorization Type.
      // This means that the Categorization entity returned has children
      // which contain their children (if any), and so on.
      // //////////////////////////////
      // Get active Categorizations full tree
      boolean active = true;
      boolean fullTree = true;
      Categorization[] categorizationArray = repository.categorizationReadByType(
          authToken, categorizationType, active, fullTree);
      // Get children categorizations for categorization
      Categorization[] childCategorizations =
 repository.categorizationChildRead(authToken,
          categorizationType, categorization, active);
      // //////////////////////////////
      // Deactivate a Categorization
      // //////////////////////////////
      categorization = repository.categorizationDeactivate(authToken,
          categorization, categorizationType);
      // pActive is set to "true" so that the method returns
      // only active categorizations
      Categorization[] activeCategorizations = repository
          .categorizationChildRead(authToken, categorizationType,
              categorization, true);
      // Get inactive child Categorizations
      Categorization[] inactiveCategorizations =
 repository.categorizationChildRead(authToken,
          categorizationType, categorization, false);
      // /////////////////////////////
      // Reactivate Categorizations
      // /////////////////////////////
      for(int i=0; i<inactiveCategorizations.length; i++){
        categorization = repository.categorizationReactivate(authToken,
            inactiveCategorizations[i], categorizationType);
      }
      // //////////////////////////////
      // Delete a Categorization Type
      // //////////////////////////////
      repository.categorizationTypeDelete(authToken, categorizationType);
    } 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();
    }
  }
}

回避するメソッド

次に示すメソッドは、Oracle Enterprise Repository内部でのみ使用します。これらのメソッドの誤った使用によって、カテゴリ分けタイプの機能が損われることがあります(回復できないダメージが起こることはありません)。これらのメソッドで提供される機能は、Oracle Enterprise RepositoryのCategorizationTypeメソッドに組み込まれています。

  • getActiveStatus() int - CategorizationType

  • getCategorizations() Categorizations[] - CategorizationType

  • GetEntityType() String - CategorizationType

  • getKey() String - CategorizationType

  • getTypeDesc() TypeDesc - CategorizationType

  • hashCode() int - CategorizationType

  • isCustom() boolean - CategorizationType

  • isFlat() boolean - CategorizationType

  • isSystemOnly() boolean - CategorizationType

  • setActiveStatus(int activeStatus) void - CategorizationType

  • setAssetAssignable(boolean assetAssignable) void - CategorizationType

  • setCategorizations(Categorizations[] categorizations) void - CategorizationType

  • setCustom(boolean custom) void - CategorizationType

  • setEntityType(String entityType) void - CategorizationType

  • setFlat(boolean flat) void - CategorizationType

  • setID(long ID) void - CategorizationType

  • setKey(String key) void - CategorizationType

  • setSystemOnly(boolean systemOnly) void - CategorizationType

18.2.3 ユースケース: カテゴリ分けの操作

説明

次のコード・サンプルに、カテゴリ分けの作成、更新、表示、非アクティブ化/再アクティブ化を示します。前述のように、カテゴリ分けはカテゴリ分けタイプの下位にあります。すなわち、カテゴリ分けはカテゴリ分けタイプに属しています。

サンプル・コード

例18-3 ユースケース: カテゴリ分けの操作

package com.flashline.sample.categorizationtypesandapi;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
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.Categorization;
import com.flashline.registry.openapi.entity.CategorizationType;
import com.flashline.registry.openapi.query.CategorizationTypeCriteria;
import com.flashline.registry.openapi.service.v300.FlashlineRegistry;
import
 com.flashline.registry.openapi.service.v300.FlashlineRegistryServiceLocator;
public class CategorizationExamples {
  public static void main(String pArgs[]) throws ServiceException,
 RemoteException,
      OpenAPIException {
    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 Categorization Type
      // //////////////////////////////
      CategorizationType categorizationType = repository
          .categorizationTypeCreate(authToken, "exampleType", "Example Type",
              "Example Types", false, true);
      // //////////////////////////////
      // Find and update a categorization type
      // //////////////////////////////
      CategorizationTypeCriteria categorizationTypeCriteria = new
 CategorizationTypeCriteria();
      boolean projectAssign = true;
      categorizationTypeCriteria.setProjectAssignCriteria(projectAssign + "");
      CategorizationType[] categorizationTypes = repository
          .categorizationTypeQuery(authToken, categorizationTypeCriteria);
      // Set plural display name
      categorizationType.setDisplayPlural("Updated Example Types");
      // Set singular display name
      categorizationType.setDisplaySingular("Updated Example Type");
      // Set Categorization Type name
      categorizationType.setName("updatedExampleType");
      // Set Categorization Type exclusive assign
      categorizationType.setExclusiveAssign(true);
      // Set Categorization Type project Assignable
      categorizationType.setProjectAssignable(false);
      // Update Categorization Type
      categorizationType = repository.categorizationTypeUpdate(
          authToken, categorizationType);
      // Read a Categorization Type
      CategorizationType categorizationTypeRead = repository
          .categorizationTypeRead(authToken, categorizationType.getID());
      // //////////////////////////////
      // Create a Categorization within a Categorization Type
      // //////////////////////////////
      Categorization categorization = repository.categorizationCreate(
          authToken, "Example Categorization", categorizationType);
      // //////////////////////////////
      // Create a Categorization within a Categorization (a.k.a. a
      // sub-categorization or child categorization)
      //
      // method validates that:
      //   - no child categorization with the same name exists within the
      //     parent categorization.
      //   - the categorization type is valid
      //   - the parent categorization is valid.
      // //////////////////////////////
      Categorization childCategorization = repository
          .categorizationChildCreate(authToken, "Example Child Categorization",
              categorizationType, categorization);
      childCategorization.setName("Updated Example Child Categorization");
      childCategorization = repository.categorizationUpdate(authToken,
          childCategorization, categorizationType);
      // //////////////////////////////
      // Observe various properties of a categorization. Note that the
      // properties are not being assigned to local variables in
      // the interest of brevity...
      // //////////////////////////////
      Categorization categorizationRead = repository.categorizationRead(
          authToken, childCategorization.getID());
      // Get Categorization parent id
      //categorizationRead.getParentID();
      // Get Categorization active status
      categorizationRead.getActiveStatus();
      // Get Categorization ID
      categorizationRead.getID();
      // Get Categorization name
      categorizationRead.getName();
      // Get Categorization recursive name
      categorizationRead.getRecursiveName();
      // Get Categorization Categorization Type ID
      categorizationRead.getTypeID();
      // //////////////////////////////
      // Retrieve the full tree of categorizations for a Categorization Type.
      // This means that the Categorization entity returned has children
      // which contain their children (if any), and so on.
      // //////////////////////////////
      // Get active Categorizations full tree
      boolean active = true;
      boolean fullTree = true;
      Categorization[] categorizationArray = repository.categorizationReadByType(
          authToken, categorizationType, active, fullTree);
      // Get children categorizations for categorization
      Categorization[] childCategorizations =
 repository.categorizationChildRead(authToken,
          categorizationType, categorization, active);
      // //////////////////////////////
      // Deactivate a Categorization
      // //////////////////////////////
      categorization = repository.categorizationDeactivate(authToken,
          categorization, categorizationType);
      // pActive is set to "true" so that the method returns
      // only active categorizations
      Categorization[] activeCategorizations = repository
          .categorizationChildRead(authToken, categorizationType,
              categorization, true);
      // Get inactive child Categorizations
      Categorization[] inactiveCategorizations =
 repository.categorizationChildRead(authToken,
          categorizationType, categorization, false);
      // /////////////////////////////
      // Reactivate Categorizations
      // /////////////////////////////
      for(int i=0; i<inactiveCategorizations.length; i++){
        categorization = repository.categorizationReactivate(authToken,
            inactiveCategorizations[i], categorizationType);
      }
      // //////////////////////////////
      // Delete a Categorization Type
      // //////////////////////////////
      repository.categorizationTypeDelete(authToken, categorizationType);
    } 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();
    }
  }
}

回避するメソッド:

次に示すメソッドはOracle Enterprise Repository内部専用なので、使用しないでください。これらのメソッドを誤って使用すると、カテゴリ分けが正しく機能しないことがあります。これらのメソッドで提供される機能は、Oracle Enterprise RepositoryのCategorizationメソッドに組み込まれています。

  • getDescription() String - Categorization

  • GetEntityType() String - Categorization

  • getKey() String - Categorization

  • getLevel() long - Categorization

  • getType() CategorizationType - Categorization

  • getTypeDesc() TypeDesc - Categorization

  • hashCode() int - Categorization

  • set_super(Categorization _super) void - Categorization

  • setActiveStatus(int activeStatus) void - Categorization

  • setDeleted(boolean deleted) void - Categorization

  • setDescription(String description) void - Categorization

  • setEntityType(String entityType) void - Categorization

  • setID(long ID) void - Categorization

  • setKey(String key) void - Categorization

  • setRecursiveName(String recursiveName) void - Categorization

  • setType(CategorizationType type) void - Categorization

  • setTypeID(long ID) void - Categorization