Rational Developer for System z, version 7.6

Création d'un groupe de propriétés

Cet exemple montre comment créer à l'aide d'un programme un groupe de propriétés comportant des valeurs pour des propriétés prédéfinies et des propriétés enregistrées dans Rational Developer for System z.

Exemple de scénario

Pour créer un groupe de propriétés, sélectionnez l'action Actions de l'échantillon d'API -> Créer un groupe de propriétés dans le menu en incrustation d'un noeud de fichiers MVS dans la vue Systèmes distants.

graphique createPropertyGroup

Des instructions s'affichent lors de la création du groupe de propriétés et de la définition des valeurs de propriété. En outre, des messages d'erreur apparaissent si des conditions d'erreur sont détectées. Ils figurent dans la sortie standard associée au plan de travail. Vous pouvez la trouver dans la fenêtre DOS à partir de laquelle a été lancé le plan de travail ou dans la vue Console du plan de travail d'hébergement dans le cas du plan de travail d'exécution.

Remarque : Il est possible que la sortie standard correspondant à un plan de travail démarré avec l'icône Eclipse standard ne soit pas visible, selon les paramètres d'exécution définis pour le plan de travail.

L'illustration suivante affiche les résultats après succès de la création du groupe de propriétés et de la définition des valeurs :

graphique createPropertyGroupResults

Exemple de structure de code

Extraction du conteneur de groupes de propriétés pour le système

Le fragment de code suivant de la classe CreatePropertyGroupAction montre comment récupérer le conteneur de groupes de propriétés pour le système sélectionné :
  
if (selectedItem == null) {
  System.err.println("Create Property Group Action - Selected resource must be an MVS File subsystem.");
  return;
}
if (selectedItem instanceof ZOSSystemReference) {
  System.out.println("");
  System.out.println("-----------------------");
  System.out.println("Beginning Create Property Group Action...");
  ZOSSystemReference reference = (ZOSSystemReference) selectedItem;
  ZOSSystemImage system = (ZOSSystemImage) reference.getReferent();
  // Get the property group container for this system.
  ZOSPropertyGroupManager manager = ZOSPropertyGroupManager.getZOSPropertyGroupManager();
  IPropertyGroupContainer container = manager.getPropertyGroupContainer(system.getName());
  if (container == null) {
    System.err.println("Create Property Group Action - No container for system: " + system.getName());
    return;
  }

Il y a d'abord vérification que l'élément selectedItem est une instance de la classe ZOSSystemReference. Dans l'affirmative, l'image ZOSSystemImage est récupérée à partir de ZOSSystemReference à l'aide de la méthode getReferent.

Pour chaque connexion système, il existe un conteneur de groupes de propriétés. Le conteneur de groupes de propriétés d'un nom de système donné peut être récupéré à l'aide de la méthode getPropertyGroupContainer de la classe ZOSPropertyGroupManager.

Création d'un groupe de propriétés

Le fragment de code suivant de la classe CreatePropertyGroupAction montre comment créer un groupe de propriétés composé d'une instance de catégorie provenant d'une catégorie définie par l'utilisateur et d'une instance de catégorie provenant d'une catégorie prédéfinie.
 
IPropertyGroup group = null;
try {
  group = container.createPropertyGroup(PROPERTY_GROUP_NAME, "");
  System.out.println(PROPERTY_GROUP_NAME + " created.");
} catch (DuplicatePropertyGroupException e1) {
  System.err.println("Create Property Group Action - Property group already exists.");
  return;
}

Le groupe de propriétés est créé à l'aide de la méthode createPropertyGroup. Si le groupe de propriétés existe déjà, une exception DuplicatePropertyGroupException est émise et un message d'erreur s'imprime.

Utilisation d'une catégorie définie par l'utilisateur

Le fragment de code suivant montre comment créer une instance de catégorie pour une catégorie définie par l'utilisateur, puis comment l'ajouter à un groupe de propriétés.
// Create an instance of the user-defined category, set properties,
// and add the instance to the property group. These properties will not appear
// in the UI, but they are available through the API.
try {
  ICategory category = manager.getCategory("SAMPLE_CATEGORY");
  if (category == null) {
    System.err.println("Create Property Group Action - Could not find category SAMPLE_CATEGORY.");
    return;
  }
  ICategoryInstance instance = category.makeInstance();
  instance.setValue("PROPERTY_1", "value1");
  System.out.println("PROPERTY_1 set to value1");
  instance.setValue("PROPERTY_2", "value2");
  System.out.println("PROPERTY_2 set to value2");
  group.addCategoryInstance(instance);
} catch (UnregisteredPropertyException e) {
  System.err.println("Create Property Group Action - Unregistered property: " + e.getName());
  return;
} catch (DuplicateInstanceException e) {
  System.err.println("Create Property Group Action - Duplicate instance of category: " + e.getCategoryInstance().getCategory().getName());
  return;
}
Une instance de la catégorie SAMPLE_CATEGORY est créée par le fragment de code précédent. Cette catégorie est enregistrée dans Rational Developer for System z à l'aide du point d'extension Eclipse suivant :
<extension point="com.ibm.ftt.properties.api.category">
  <category name="SAMPLE_CATEGORY">
    <property name="PROPERTY_1" />
    <property name="PROPERTY_2" />
  </category>
</extension>

Ces valeurs de propriété n'apparaissent pas dans l'interface utilisateur de Rational Developer for System z car celle-ci n'est pas extensible, mais elles sont accessibles via l'API.

Utilisation d'une catégorie prédéfinie

Le fragment de code suivant montre comment créer une instance de catégorie pour une catégorie prédéfinie, puis comment l'ajouter à un groupe de propriétés.
// Create an instance of a pre-defined category, set properties,
// and add the instance to the property group. The values are not
// realistic values, this is just an example of how to work with
// pre-defined properties.
try {
  ICategory category = manager.getCategory(IPropertyGroupConstants.JCL_OPTIONS);
  if (category == null) {
    System.err.println("Create Property Group Action - Could not find category " + IPropertyGroupConstants.COBOL_SETTINGS);
    return;
  }
  ICategoryInstance instance = category.makeInstance();
  instance.setValue(IPropertyGroupConstants.JOBCARD, "//sample jobcard");
  System.out.println(IPropertyGroupConstants.JOBCARD + " set to //sample jobcard");
  instance.setValue(IPropertyGroupConstants.GENERATED_JCL_DATASET, "sample.test.jcl");
  System.out.println(IPropertyGroupConstants.GENERATED_JCL_DATASET + " set to sample.test.jcl");
  group.addCategoryInstance(instance);
} catch (UnregisteredPropertyException e) {
  System.err.println("Create Property Group Action - Unregistered property: " + e.getName());
  return;
} catch (DuplicateInstanceException e) {
  System.err.println("Create Property Group Action - Duplicate instance of category: " + e.getCategoryInstance().getCategory().getName());
}

(IPropertyGroupConstants) contient le nom des catégories prédéfinies et des propriétés.


Conditions d'utilisation | Commentaires

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)