Rational Developer for System z

프로젝트 목록 가져오기

이 샘플에서는 작업공간에 있는 원격 프로젝트의 목록을 가져오는 방법을 보여줍니다. 또한 원격 프로젝트에 추가된 하위를 순회하는 방법을 보여줍니다.

샘플 시나리오

z/OS® 프로젝트에 대한 정보를 검색하려면 API 샘플 > 프로젝트 정보 조치를 선택하십시오.

정의된 각 프로젝트의 경우, 프로젝트에 대한 몇 가지 기본 정보와 추가된 멤버 및 데이터 세트의 계층 구조 목록이 표시됩니다. 프로젝트 아래의 각 하위의 경우, 각 하위의 해당 COBOL 컴파일러 옵션 세트가 표시됩니다. 출력은 워크벤치와 연관된 표준 출력으로 전송됩니다. 워크벤치가 시작된 DOS 창이나 런타임 워크벤치의 경우 워크벤치를 호스트하는 콘솔 보기에서 볼 수 있습니다.

주: 표준 Eclipse 아이콘을 사용하여 시작된 워크벤치의 표준 출력이 표시되지 않을 수 있습니다.

listProjectsResults의 아트워크

샘플 코드 설명

알려진 모든 하위 프로젝트 반복

프로젝트 목록 가져오기 프로세스는 시스템 목록 가져오기와 비슷합니다.

다음 코드 스니펫은 현재 작업공간에 정의된 프로젝트 및 하위 프로젝트 목록을 반복합니다.

 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);
		}
	}

이 코드는 LogicalProjectRegistryFactory 클래스의 getSingleton 메소드를 통해 가져온 LogicalProjectRegistry 클래스를 사용하여 시작되어, 워크벤치에 정의된 모든 ILogicalProject 인스턴스 목록을 가져옵니다. 그런 다음 getChildren 메소드를 사용하여 각 프로젝트 하위를 가져와서 알려진 프로젝트 목록을 반복합니다. ILogicalProject 오브젝트에는 ILogicalSubProject 오브젝트만 하위로 포함될 수 있습니다. ILogicalSubProject 오브젝트가 차례로 반복되어 처리됩니다.

getName 메소드를 사용하면 프로젝트 및 하위 프로젝트의 이름을 각각 가져올 수 있습니다.

연관된 시스템이 연결되어 있는지 판별

MVS 하위 프로젝트와 연관된 시스템이 연결되어 있는지 쉽게 판별할 수 있습니다. ILogicalSubProject를 참조한 후, getSystems 메소드를 사용하여 특정 시스템을 나타내는 IOSImage 오브젝트를 검색하십시오. 각 MVS 하위 프로젝트는 MVS 파일 시스템 하나 또는 하나에만 해당합니다. IOSImage 오브젝트가 발견되면 (isConnected) 메소드를 호출하여 시스템이 연결되어 있는지 판별할 수 있습니다. 다음 코드 스니펫은 printSubproject 샘플 메소드에서 가져온 것입니다.

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

프로젝트 또는 자원 특성 검색

프로젝트 검색 및 설정 메커니즘은 더 이상 사용되지 않으며 향후 버전에서는 변경됩니다.

getPersistentProperty 메소드를 사용하여 프로젝트 특성을 검색할 수 있습니다. printSubproject 샘플 메소드의 다음 코드 스니펫은 지정된 하위 프로젝트의 COBOL 컴파일러 옵션을 검색합니다.

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

마찬가지로, printMember 샘플 메소드는 다음 코드 스니펫을 사용하여 지정된 자원과 연관된 COPYLIB를 검색합니다.

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

하위 프로젝트 트리 구조 순회

지정된 하위 프로젝트에 추가된 아티팩트또는 ILogicalContainer 오브젝트를 가져오려면 members 메소드를 사용하십시오. 다음 코드 스니펫은 printMembers 메소드에서 가져온 것입니다. ILogicalSubProject 클래스는 ILogicalContainer 클래스에서 상속합니다.

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

printMember 메소드가 현재 자원과 관련된 정보를 표시합니다. 현재 자원이 ILogicalContainer이면, 서브트리까지 반복적으로 printMembers 메소드를 호출합니다.

 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);
	}

이용 약관 | 피드백

이 Information Center는 Eclipse 기술로 구현됩니다. (http://www.eclipse.org 웹사이트 참조)