Rational Developer for System z, Version 7.6

Eigenschaftsgruppe erstellen

Dieses Beispiel veranschaulicht, wie eine Eigenschaftsgruppe programmgesteuert erstellt wird, die über Werte für vordefinierte Eigenschaften und Eigenschaften verfügt, die für Rational Developer for System z registriert sind.

Beispielszenario

Wenn Sie eine Eigenschaftsgruppe erstellen möchten, wählen Sie in der Ansicht 'Ferne Systeme' aus dem Popup-Menü eines Knotens unter MVS-Dateien die Aktion API-Beispielaktionen -> Eigenschaftsgruppe erstellen aus.

Bildmaterial für createPropertyGroup

Wenn die Eigenschaftsgruppe erstellt wird und die Eigenschaftswerte festgelegt werden, werden entsprechende Meldungen angezeigt. Außerdem werden Fehlernachrichten angezeigt, wenn Fehlerbedingungen festgestellt werden. Sie werden in der der Workbench zugeordneten Standardausgabe angezeigt. Diese können Sie in dem DOS-Fenster, von dem aus die Workbench gestartet wurde, oder bei Verwendung der Laufzeitworkbench in der Ansicht 'Konsole' der Host-Workbench sehen.

Anmerkung: Je nach den Laufzeiteinstellungen für die Workbench wird die Standardausgabe für eine mit dem Eclipse-Standardsymbol gestartete Workbench möglicherweise nicht angezeigt.

Die folgende Abbildung zeigt die Ergebnisse nach der erfolgreichen Erstellung der Eigenschaftsgruppe und der Festlegung der Werte:

Bildmaterial für createPropertyGroupResults

Erläuterung des Beispielcodes

Eigenschaftsgruppencontainer für das System abrufen

Das folgende Codefragment aus der Klasse CreatePropertyGroupAction veranschaulicht, wie der Eigenschaftsgruppencontainer für das ausgewählte System abgerufen wird:
  
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;
  }

Zu Beginn wird überprüft, ob selectedItem eine Instanz der Klasse ZOSSystemReference ist. Ist das der Fall, wird mithilfe der Methode getReferent das ZOSSystemImage von ZOSSystemReference abgerufen.

Für jede Systemverbindung gibt es einen Eigenschaftsgruppencontainer. Der Eigenschaftsgruppencontainer für einen angegebenen Systemnamen kann mithilfe der Methode getPropertyGroupContainer der Klasse ZOSPropertyGroupManager abgerufen werden.

Eigenschaftsgruppe erstellen

Das folgende Codefragment aus der Klasse CreatePropertyGroupAction veranschaulicht, wie eine Eigenschaftsgruppe erstellt wird, die aus einer Kategorieinstanz einer benutzerdefinierten oder einer vordefinierten Kategorie besteht.
 
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;
}

Die Eigenschaftsgruppe wird mithilfe der Methode createPropertyGroup erstellt. Wenn die Eigenschaftsgruppe bereits vorhanden ist, wird eine DuplicatePropertyGroupException ausgelöst und eine Fehlernachricht wird ausgegeben.

Benutzerdefinierte Kategorie verwenden

Das folgende Codefragment veranschaulicht, wie eine Kategorieinstanz für eine benutzerdefinierte Kategorie erstellt und einer Eigenschaftsgruppe hinzugefügt wird:
// 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;
}
Im vorherigen Codefragment wird eine Instanz der Kategorie SAMPLE_CATEGORY erstellt. Diese Kategorie wird mithilfe des folgenden Eclipse-Erweiterungspunkts für Rational Developer for System z registriert:
<extension point="com.ibm.ftt.properties.api.category">
  <category name="SAMPLE_CATEGORY">
    <property name="PROPERTY_1" />
    <property name="PROPERTY_2" />
  </category>
</extension>

Diese Eigenschaftswerte werden in der Benutzerschnittstelle von Rational Developer for System z nicht angezeigt, da die Benutzerschnittstelle nicht erweiterbar ist. Sie stehen jedoch über die API zur Verfügung.

Vordefinierte Kategorie verwenden

Das folgende Codefragment veranschaulicht, wie eine Kategorieinstanz für eine vordefinierte Kategorie erstellt und einer Eigenschaftsgruppe hinzugefügt wird.
// 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) enthält die Namen der vordefinierten Kategorien und Eigenschaften.


Nutzungsbedingungen | Feedback

Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)