Rational Developer for System z, Versión 7.6

Obtener la lista de proyectos

Este ejemplo muestra cómo obtener una lista de proyectos remotos que existen en el espacio de trabajo. También muestra cómo recorrer los hijos añadidos a los proyectos remotos.

Escenario de ejemplo

Para recuperar información sobre proyectos z/OS, seleccione la acción Ejemplos de API > Información de proyectos.

Imagen de listProjectsMenu

Para cada proyecto definido, se muestra información básica sobre el proyecto y una lista jerárquica de conjuntos de datos y miembros que se han añadido. Para cada hijo del proyecto, se muestran las opciones de compilador COBOL aplicables. La salida se envía a 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.

Imagen de listProjectsResults

Recorrido por el código de ejemplo

Pasar a través de todos los subproyectos conocidos

El proceso de obtener la lista de proyectos es parecido al de obtener la lista de sistemas.

El fragmento de código siguiente pasa a través de la lista de proyectos y subproyectos definidos en el espacio de trabajo actual.

 Object [] projectReferences = 
		LogicalProjectRegistryFactory.getSingleton().getProjects();
	
	for (int i = 0; i < projectReferences.length; i++) {
		ILogicalProject project = 
			(ILogicalProject) projectReferences[i];
		System.out.println("----- Project[" + i + "]: " +
			project.getName());		
		List subProjects = project.getChildren();
			
		for (int j = 0; j < subProjects.size(); j++) {
			ILogicalSubProject subProject = 
				(ILogicalSubProject)subProjects.get(j);
			System.out.println(INITIAL_INDENT + "Subproject[" + j +
				"]: " + subProject.getName());
			printSubproject(subProject, INITIAL_INDENT +
				INDENT_PREFIX);
		}
	}

El código empieza utilizando la clase LogicalProjectRegistry obtenida por el método getSingleton de la clase LogicalProjectRegistryFactory para obtener la lista de todas las instancias de ILogicalProject definidas en el entorno de trabajo. A continuación pasa por la lista de proyectos conocidos, obteniendo los hijos de cada proyecto mediante el método getChildren. Un objeto ILogicalProject sólo puede contener objetos ILogicalSubProject como hijos. A su vez, se recorren y se procesan los objetos ILogicalSubProject.

Los métodos getName permiten obtener el nombre del proyecto y el subproyecto respectivamente.

Determinar si el sistema asociado está conectado

Es fácil determinar si el sistema asociado a un subproyecto MVS está conectado. Una vez tenga una referencia a un ILogicalSubProject, recupere el objeto IOSImage que representa el sistema determinado mediante el método getSystems. Cada subproyecto MVS corresponde a un sistema de archivos MVS y sólo a uno. Una vez tenga el objeto IOSImage, puede determinar si el sistema está conectado invocando el método (isConnected). El fragmento de código siguiente corresponde al método de ejemplo printSubproject.

 if (subProject.getSystems()[0].isConnected()) { 
		printMembers(subProject, indent);				
	} else {
		......
	}

Recuperar propiedades de proyecto o de recurso

El mecanismo para recuperar y establecer proyectos puede quedar obsoleto y cambiarse en el futuro.

El método getPersistentProperty puede utilizarse para recuperar propiedades de proyecto. El fragmento de código siguiente del método de ejemplo printSubproject recupera opciones de compilador COBOL para el subproyecto dado.

 String compileOptions = subProject.getPersistentProperty( 
		IPhysicalResourceCoreConstants.COBOL_COMPILE_OPTIONS);

Del mismo modo, el método de ejemplo printMember lo utiliza para recuperar el COPYLIB asociado al recurso especificado.

 String copyLibraries = resource.getPersistentProperty(IPhysicalResourceCoreConstants.COBOL_COMPILE_COPYLIBRARIES);

Recorrer la estructura de árbol del subproyecto

Para obtener los artefactos añadidos a un subproyecto dado, o cualesquiera objetos de ILogicalContainer, utilice el método members. El fragmento de código siguiente se toma del método printMembers. Una clase ILogicalSubProject hereda de la clase ILogicalContainer.

  IAdaptable [] members = container.members();
		for (int j = 0; j < members.length; j++) {
			printMember((ILogicalResource) members[j], indent + INDENT_PREFIX);
		}

El método printMember imprimiría entonces la información adecuada perteneciente al recurso actual. Si el recurso actual es un ILogicalContainer, invocaría de forma recurrente el método printMembers para descender por el subárbol.

 if (resource instanceof ILogicalContainer) {
		ILogicalContainer memberContainer = (ILogicalContainer) resource;
		......
		printMembers(memberContainer, indent);
	} else {
		System.out.println(indent + "member[" + index + "] " + resource.getName()
				+ " having COBOL copy libraries: " + copyLibraries);
	}

Términos de uso | Comentarios

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