Rational Developer for System z

Crear un grupo de propiedades

Este ejemplo muestra cómo crear programáticamente un grupo de propiedades que tenga valores para propiedades predefinidas y propiedades registrada con Rational Developer for System z.

Escenario de ejemplo

Para crear un grupo de propiedades, seleccione la acción Acciones de ejemplo de API -> Crear grupo de propiedades del menú emergente de un nodo Archivos MVS en la vista Sistemas remotos.

Las sentencias se visualizan cuando se crea el grupo de propiedades y cuando se establecen los valores de propiedades. Además, si se detectan condiciones de error, también se visualizan mensajes de error. Se visualizarán en la salida estándar asociada al entorno de trabajo. Esto puede encontrarse en la ventana DOS desde la que se inició el entorno de trabajo o en la vista Consola del entorno de trabajo hospedante en el caso del entorno de trabajo de tiempo de ejecución.

Nota: La salida estándar de un entorno de trabajo iniciado con el icono Eclipse no puede ser visible según los valores de tiempo de ejecución para el entorno de trabajo.

La ilustración siguiente muestra los resultados de la creación satisfactoria del grupo de propiedades y del establecimiento de los valores:

Imagen de createPropertyGroupResults

Recorrido por el código de ejemplo

Recuperar el contenedor de grupo de propiedades para el sistema

El fragmento de código siguiente de la clase CreatePropertyGroupAction muestra cómo recuperar el contenedor de grupo para el sistema seleccionado:
  
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();
  // Obtener el contenedor de grupo de propiedades para este sistema.
  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;
  }

Empieza verificando que selectedItem es una instancia de la clase ZOSSystemReference. Si es así, recupera ZOSSystemImage de ZOSSystemReference mediante el método getReferent.

Para cada conexión del sistema, hay un contenedor de grupo de propiedades. El contenedor de grupo de propiedades para un nombre del sistema dado puede recuperarse mediante el método getPropertyGroupContainer de la clase ZOSPropertyGroupManager.

Crear un grupo de propiedades

El fragmento de código siguiente de la clase CreatePropertyGroupAction muestra cómo crear un grupo de propiedades que consta de una instancia de categoría de una categoría definida por el usuario así como una instancia de categoría de una categoría predefinida.
 
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;
}

El grupo de propiedades se ha creado mediante el método createPropertyGroup. Si el grupo de propiedades ya existe, se lanza un DuplicatePropertyGroupException y se imprime un mensaje de error.

Utilizar una categoría definida por el usuario

El fragmento de código siguiente muestra cómo crear una instancia de categoría para una categoría definida por el usuario y añadirla a un grupo de propiedades:
// Crear una instancia de la categoría definida por el usuario, establecer
// propiedades y añadir la instancia al grupo de propiedades. Estas propiedades no
// aparecerán en Interfaz de usuario, pero estarán disponibles a través de la 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 establecida en value1");
  instance.setValue("PROPERTY_2", "value2");
  System.out.println("PROPERTY_2 establecida en 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;
}
El fragmento de código anterior crea una instancia de la categoría SAMPLE_CATEGORY. Esta categoría se registra con Rational Developer for System z mediante el punto de ampliación de Eclipse siguiente:
<extension point="com.ibm.ftt.properties.api.category">
  <category name="SAMPLE_CATEGORY">
    <property name="PROPERTY_1" />
    <property name="PROPERTY_2" />
  </category>
</extension>

Estos valores de propiedades no se visualizan en la interfaz de usuario de Rational Developer for System z porque la interfaz de usuario no es ampliable, pero están disponibles a través de la API.

Utilizar una categoría predefinida

El fragmento de código siguiente muestra cómo crear una instancia de categoría para una categoría predefinida y añadirla a un grupo de propiedades.
// Crear una instancia de una categoría predefinida, establecer las
// propiedades y añadir la instancia al grupo de propiedades. Los valores
// no son valores realistas, esto sólo es un ejemplo de cómo trabajar con
// propiedades predefinidas.
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) contiene los nombres de las categorías y las propiedades predefinidas.


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)