Enumerar

Superior  Previo  Próximo

Una vez que obtuvo una lista de vistas, puede iterar recursivamente a través de los paquetes dentro de cada vista usando la interfaz EnumPackages para obtener una lista de los paquetes hijos para cada paquete/vista padre. 

 

EA  provee la interfaz EnumPackages(const VARIANT FAR& PackageGUID) para obtener una representación XML de todos los paquetes hijos de otro paquete/vista. El XML contiene un nodo para cada paquete -y cada nodo contiene un Nombre y un elemento GUID-.  El elemento GUID se usa para obtener más información sobre un paquete (incluyendo  los paquetes listados dentro de un paquete). 

 

 

El siguiente es un ejemplo del XML devuelto por esta interfaz:

 

<?xml version="1.0"?> 

<Document xmlns:UML="omg.org/UML1.3"> 

  <Package> 

  <Name>UC01: Use Case Model</Name> 

  <GUID>EAID_508A37AC_5B27_4b98_8BBE_81D6AA03E8B4</GUID> 

  </Package> 

</Document> 

 

 

El siguiente código Visual Basic ilustra cómo acceder y usar la interfaz EnumPackages:

 

  Private Sub GetPackage(PackageGUID As String, Offset As String) 

 

Dim xmlDoc As New MSXML2.DOMDocument 

Dim xmlPkg As New MSXML2.DOMDocument 

Dim xmlView As MSXML2.IXMLDOMNode 

Dim xmlPkgNode As MSXML2.IXMLDOMNode 

 

'lista todos los diagramas en este paquete

GetDiagrams PackageGUID, Offset 

 

'muestra todos los elementos en este paquete

GetElements PackageGUID, Offset 

 

'luego carga la lista de paquetes para este paquete

xmlPkg.loadXML EAProject.EnumPackages(PackageGUID) 

Set xmlPkgNode = xmlPkg.selectSingleNode("Document/Package") 

 

'mientras haya paquetes para procesar

Do While (Not xmlPkgNode Is Nothing) 

AddToTreeList "  " & xmlPkgNode.selectSingleNode("Name").Text 

GetPackage xmlPkgNode.selectSingleNode("GUID").Text, Indent + Offset 

Set xmlPkgNode = xmlPkgNode.nextSibling 

Loop 

 

End Sub